Function at 0x52d1b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5d8640
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x33c
push ebx
push ebp
push esi
push edi
push fcn.0042bd50
push fcn.004b6ca0
push 0x10
lea eax, [esp + 0x110]
push 0x20
mov ebp, ecx
push eax
call fcn.005c1f9f
mov ebx, dword [esp + 0x384]
xor esi, esi
mov dword [esp + 0x354], esi
mov eax, dword [ebx + 8]
shl eax, 2
cmp eax, 0xffffffff
je 0x52d20a
mov dword [ebp + 0x30], eax
mov edi, dword [ebp + 0x24]
cmp edi, esi
je 0x52d248
mov eax, dword [ebp + 0x28]
mov ecx, eax
dec eax
test ecx, ecx
je 0x52d239
inc eax
mov dword [esp + 0x18], eax
push esi
mov ecx, edi
call fcn.00546870
mov eax, dword [esp + 0x18]
add edi, 0x2d8
dec eax
mov dword [esp + 0x18], eax
jne 0x52d220
mov eax, dword [ebp + 0x24]
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x28], esi
mov eax, dword [ebx + 8]
lea edi, [ebp + 4]
cmp eax, 0xffffffff
je 0x52d25c
mov dword [edi + 0x10], eax
mov eax, dword [edi + 4]
cmp eax, esi
je 0x52d26f
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov dword [edi + 4], esi
lea ecx, [esp + 0x24]
mov dword [edi + 0xc], esi
mov dword [edi + 8], esi
mov byte [esp + 0x13], 0
call fcn.004ccd50
push 1
push 1
push esi
push esi
push esi
push esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0x36c], 1
call fcn.004b7bc0
mov eax, dword [ebx + 8]
test eax, eax
jle 0x52d3e3
mov edx, dword [ebx + 4]
push 1
mov ecx, dword [edx + esi*4]
call fcn.0050c910
test al, al
je 0x52d328
mov al, byte [esp + 0x35c]
mov byte [esp + 0x13], 1
test al, al
je 0x52d328
mov ecx, dword [ebx + 4]
lea eax, [esp + 0x1c]
push eax
mov ecx, dword [ecx + esi*4]
call fcn.0050b0a0
mov ecx, eax
call fcn.00526e50
mov eax, dword [esp + 0x1c]
test eax, eax
jg 0x52d2f1
jne 0x52d328
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x52d328
push 0x170
call sub.mfc42u.dll_operatornew
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x354], 2
je 0x52d35c
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebx + 4]
push ecx
push esi
mov ecx, dword [edx + esi*4]
lea edx, [esp + 0x2c]
push ecx
push edx
mov ecx, eax
call fcn.005a0b30
jmp 0x52d35e
push 0x170
call sub.mfc42u.dll_operatornew
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x354], 3
je 0x52d35c
mov ecx, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebx + 4]
push esi
mov edx, dword [ecx + esi*4]
mov ecx, eax
push edx
push 1
call fcn.005a0a30
jmp 0x52d35e
xor eax, eax
mov ecx, dword [edi + 8]
push eax
push ecx
mov ecx, edi
mov byte [esp + 0x35c], 1
call fcn.0040c9d0
mov eax, dword [ebx + 8]
inc esi
cmp esi, eax
jl 0x52d2a7
mov al, byte [esp + 0x13]
test al, al
je 0x52d3e3
mov eax, dword [ebx + 8]
xor esi, esi
test eax, eax
jle 0x52d3e3
push 0x170
call sub.mfc42u.dll_operatornew
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x354], 4
je 0x52d3c5
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push ecx
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [edx + esi*4]
push ecx
mov ecx, eax
call fcn.005a0c20
jmp 0x52d3c7
xor eax, eax
mov ecx, dword [edi + 8]
push eax
push ecx
mov ecx, edi
mov byte [esp + 0x35c], 1
call fcn.0040c9d0
mov eax, dword [ebx + 8]
inc esi
cmp esi, eax
jl 0x52d38f
mov eax, dword [ebx + 8]
xor esi, esi
test eax, eax
jle 0x52d54a
lea edi, [esi - 1]
test edi, edi
jl 0x52d4a4
mov edx, dword [esp + 0x390]
mov ecx, dword [edx + 4]
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + esi*4]
lea ecx, [ecx + esi*4 - 4]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esp + 0x14], eax
mov eax, dword [ecx]
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x14]
sar eax, 2
cmp edx, eax
je 0x52d43a
dec edi
sub ecx, 4
test edi, edi
jge 0x52d41d
jmp 0x52d4a4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + esi*4]
mov edx, dword [ecx + edi*4]
push eax
push edx
call fcn.005294b0
mov cl, byte [esp + 0x1b]
add esp, 8
test cl, cl
mov dword [esp + 0x14], eax
je 0x52d486
mov edx, dword [ebx + 8]
mov ecx, dword [ebp + 8]
lea eax, [ebp + 0x20]
push eax
lea eax, [edx + esi]
add edx, edi
mov eax, dword [ecx + eax*4]
mov edx, dword [ecx + edx*4]
push eax
mov eax, dword [ecx + esi*4]
push eax
mov eax, dword [ecx + edi*4]
mov ecx, dword [esp + 0x20]
push edx
push eax
push esi
push edi
push ecx
jmp 0x52d49c
mov ecx, dword [ebp + 8]
lea edx, [ebp + 0x20]
push edx
push 0
mov edx, dword [ecx + esi*4]
mov ecx, dword [ecx + edi*4]
push edx
push 0
push ecx
push esi
push edi
push eax
call fcn.0059e180
add esp, 0x20
cmp edi, 0xffffffff
jne 0x52d53e
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x74]
mov eax, dword [edx + esi*4]
push eax
call fcn.0059f2b0
mov edx, dword [ebp + 8]
lea edi, [ebp + 0x20]
lea ecx, [esp + 0x74]
push edi
mov eax, dword [edx + esi*4]
push ecx
push 0
push eax
call fcn.0059f5d0
mov ecx, dword [ebx + 4]
add esp, 0x10
mov ecx, dword [ecx + esi*4]
push 1
call fcn.0050c910
test al, al
je 0x52d53e
mov eax, dword [ebx + 8]
mov edx, dword [ebp + 8]
add eax, esi
mov ecx, 1
push edi
mov eax, dword [edx + eax*4]
mov edx, 2
mov dword [esp + 0xc8], eax
lea eax, [esp + 0x78]
push eax
mov word [esp + 0x86], cx
mov word [esp + 0x84], dx
mov word [esp + 0x88], si
mov word [esp + 0xa8], dx
mov word [esp + 0x7e], cx
call fcn.0059dea0
add esp, 8
mov word [esp + 0x76], 2
mov eax, dword [ebx + 8]
inc esi
cmp esi, eax
jl 0x52d3f0
mov ecx, dword [esp + 0x390]
xor edi, edi
mov eax, dword [ecx + 8]
test eax, eax
jle 0x52d628
mov edx, dword [ebx + 4]
push 1
mov ecx, dword [edx + edi*4]
call fcn.0050c910
test al, al
jne 0x52d617
mov eax, dword [esp + 0x390]
lea esi, [edi + 1]
cmp esi, dword [eax + 8]
jge 0x52d617
mov ecx, dword [esp + 0x390]
mov eax, dword [ecx + 4]
mov edx, dword [eax + esi*4]
mov eax, dword [eax + edi*4]
push edx
push eax
call fcn.005294b0
add esp, 8
cmp eax, 3
je 0x52d5b4
mov ecx, dword [esp + 0x390]
inc esi
cmp esi, dword [ecx + 8]
jl 0x52d586
jmp 0x52d617
mov eax, 2
mov ecx, 1
mov word [esp + 0x7e], ax
mov word [esp + 0x7c], ax
mov eax, dword [ebp + 8]
mov word [esp + 0x80], di
mov word [esp + 0x82], si
mov word [esp + 0xa0], cx
mov word [esp + 0xa2], cx
mov edx, dword [eax + edi*4]
mov dword [esp + 0xc0], edx
mov eax, dword [eax + esi*4]
mov dword [esp + 0xc4], eax
lea eax, [ebp + 0x20]
lea ecx, [esp + 0x74]
push eax
push ecx
mov word [esp + 0x7e], 3
call fcn.0059dea0
add esp, 8
mov edx, dword [esp + 0x390]
inc edi
cmp edi, dword [edx + 8]
jl 0x52d55e
mov eax, dword [esp + 0x38c]
mov ecx, dword [esp + 0x378]
mov edx, dword [esp + 0x374]
mov esi, dword [esp + 0x370]
mov edi, dword [esp + 0x36c]
push eax
push ebx
push ecx
push edx
push esi
push edi
mov ecx, ebp
call fcn.00529110
push ebx
push esi
push edi
mov ecx, ebp
call fcn.00529120
mov edi, dword [esp + 0x388]
xor esi, esi
mov dword [ebp + 0xa0], esi
cmp dword [edi + 8], esi
jle 0x52d69f
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x364]
push ecx
mov ecx, ebp
lea edx, [eax + esi*4]
mov eax, dword [esp + 0x394]
push edx
push eax
push ebx
call fcn.0052a3d0
mov eax, dword [edi + 8]
add esi, 8
cmp esi, eax
jl 0x52d676
mov esi, dword [esp + 0x370]
mov edi, dword [esp + 0x36c]
push ebx
push esi
push edi
mov ecx, ebp
call fcn.0052c460
mov al, byte [esp + 0x368]
test al, al
je 0x52d70b
mov ecx, dword [esp + 0x380]
mov edx, dword [esp + 0x37c]
push ebx
push esi
push edi
push ecx
push edx
mov ecx, ebp
call fcn.0052cf70
mov al, byte [esp + 0x35c]
test al, al
jne 0x52d70b
mov ecx, ebp
call fcn.005a16c0
mov al, byte [esp + 0x360]
test al, al
je 0x52d70b
mov eax, dword [esp + 0x38c]
mov ecx, ebp
push eax
push ebx
push esi
push edi
call fcn.0052c1c0
lea ecx, [esp + 0x24]
mov byte [esp + 0x354], 0
call fcn.0042bd50
push fcn.0042bd50
push 0x10
lea ecx, [esp + 0x10c]
push 0x20
push ecx
mov dword [esp + 0x364], 0xffffffff
call fcn.005c2021
mov ecx, dword [esp + 0x34c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x348
ret 0x38