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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5d940c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1cc
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [ebp + 0x18]
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x30], edi
mov edx, dword [ecx + 8]
mov dword [esp + 0x44], ebx
test edx, edx
jle 0x53d316
mov ecx, dword [ecx + 4]
mov esi, dword [ecx]
add ecx, 4
add ebx, esi
inc eax
cmp eax, edx
jl 0x53d29f
test ebx, ebx
mov dword [esp + 0x44], ebx
je 0x53d316
fld qword [edi + 0x60]
fadd qword [edi + 0x68]
mov eax, dword [ebp + 0x14]
xor esi, esi
fmul qword [0x5e2790]
fstp qword [edi + 0x68]
mov ecx, dword [eax + 8]
test ecx, ecx
jle 0x53d305
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx + 4]
cmp dword [edx + esi*4], 0
je 0x53d2fd
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 4]
mov edi, dword [ecx + esi*4]
mov ecx, edi
call fcn.0050b080
fmul qword [0x5f0868]
mov eax, dword [ebp + 0x14]
fadd qword [edi + 0x28]
fstp qword [edi + 0x28]
mov edi, dword [esp + 0x30]
mov ecx, dword [eax + 8]
inc esi
cmp esi, ecx
jl 0x53d2ce
mov edx, dword [ebp + 8]
push eax
push edx
mov ecx, edi
call fcn.005293c0
jmp 0x53dc28
mov esi, dword [ebp + 0x1c]
lea ecx, [esp + 0xc0]
mov ebx, dword [esi + 8]
mov edi, dword [esi + 4]
call fcn.004b6ca0
xor eax, eax
cmp ebx, 2
mov dword [esp + 0x1e0], eax
jae 0x53d355
lea ecx, [esp + 0xc0]
mov dword [esp + 0x1e0], 0xffffffff
call fcn.0042bd50
jmp 0x53d622
mov dword [esp + 0x1c], eax
lea eax, [ebx + ebx*2]
shl eax, 5
lea ecx, [esp + 0xe8]
lea edx, [esp + 0x160]
lea ebx, [eax + edi - 0x60]
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], edx
mov ecx, ebx
mov eax, 0x2aaaaaab
sub ecx, edi
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
lea eax, [edx + eax + 1]
cmp eax, 8
ja 0x53d3ee
push fcn.0053d230
push ebx
push edi
call fcn.005465a0
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov ecx, 4
dec eax
sub esi, ecx
sub edx, ecx
mov dword [esp + 0x1c], eax
test eax, eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], edx
jl 0x53d608
mov eax, dword [esp + 0x10]
mov ecx, esi
mov edx, dword [ecx]
mov ecx, dword [eax]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
mov edi, edx
mov ebx, ecx
jmp 0x53d381
shr eax, 1
lea esi, [eax + eax*2]
shl esi, 5
add esi, edi
push esi
push edi
call fcn.0053d230
add esp, 8
cmp eax, 1
jne 0x53d42b
push edi
lea ecx, [esp + 0x8c]
call fcn.00530160
push esi
mov ecx, edi
call fcn.00530160
lea ecx, [esp + 0x88]
push ecx
mov ecx, esi
call fcn.00530160
push ebx
push edi
call fcn.0053d230
add esp, 8
cmp eax, 1
jne 0x53d45e
push edi
lea ecx, [esp + 0x8c]
call fcn.00530160
push ebx
mov ecx, edi
call fcn.00530160
lea edx, [esp + 0x88]
mov ecx, ebx
push edx
call fcn.00530160
push ebx
push esi
call fcn.0053d230
add esp, 8
cmp eax, 1
jne 0x53d491
push esi
lea ecx, [esp + 0x8c]
call fcn.00530160
push ebx
mov ecx, esi
call fcn.00530160
lea eax, [esp + 0x88]
mov ecx, ebx
push eax
call fcn.00530160
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
cmp esi, ebx
jbe 0x53d4b6
add ebx, 0x60
cmp ebx, esi
jae 0x53d4b6
push esi
push ebx
call fcn.0053d230
add esp, 8
test eax, eax
jle 0x53d49d
cmp esi, ebx
ja 0x53d4cf
mov eax, dword [esp + 0xc]
add ebx, 0x60
cmp ebx, eax
ja 0x53d4cf
push esi
push ebx
call fcn.0053d230
add esp, 8
test eax, eax
jle 0x53d4b6
sub edi, 0x60
cmp edi, esi
jbe 0x53d4e5
push esi
push edi
call fcn.0053d230
add esp, 8
cmp eax, 1
je 0x53d4cf
cmp edi, ebx
jb 0x53d515
push ebx
lea ecx, [esp + 0x8c]
call fcn.00530160
push edi
mov ecx, ebx
call fcn.00530160
lea ecx, [esp + 0x88]
push ecx
mov ecx, edi
call fcn.00530160
cmp esi, edi
jne 0x53d499
mov esi, ebx
jmp 0x53d499
add edi, 0x60
cmp esi, edi
jae 0x53d535
sub edi, 0x60
cmp edi, esi
jbe 0x53d535
push esi
push edi
call fcn.0053d230
add esp, 8
test eax, eax
je 0x53d51c
cmp esi, edi
jb 0x53d54e
mov ecx, dword [esp + 0x14]
sub edi, 0x60
cmp edi, ecx
jbe 0x53d552
push esi
push edi
call fcn.0053d230
add esp, 8
test eax, eax
je 0x53d535
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov eax, 0x2aaaaaab
sub edx, ebx
imul edx
mov esi, edx
mov eax, 0x2aaaaaab
sar esi, 4
mov edx, esi
shr edx, 0x1f
add esi, edx
mov edx, edi
sub edx, ecx
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, esi
jl 0x53d5c4
cmp ecx, edi
jae 0x53d5ab
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
inc esi
mov dword [eax], ecx
mov ecx, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x1c], esi
mov dword [ecx], edi
add ecx, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0xc]
cmp ebx, eax
jae 0x53d3ac
mov dword [esp + 0x14], ebx
mov edi, ebx
mov ebx, eax
jmp 0x53d381
mov eax, dword [esp + 0xc]
cmp ebx, eax
jae 0x53d5ef
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov dword [esi], eax
mov eax, dword [esp + 0x1c]
mov dword [edx], ebx
inc eax
add edx, 4
add esi, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], esi
cmp ecx, edi
jae 0x53d3ac
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
jmp 0x53d381
lea ecx, [esp + 0xc0]
mov dword [esp + 0x1e0], 0xffffffff
call fcn.0042bd50
mov esi, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x48]
push edx
call fcn.004b6cb0
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
mov dword [esp + 0x1e0], 1
lea edx, [ecx + ecx*2]
shl edx, 5
fld qword [edx + eax - 0x18]
xor edx, edx
fstp qword [esp + 0x58]
test ecx, ecx
jle 0x53d672
lea edi, [eax + 0x38]
fld qword [edi]
fcomp qword [esp + 0x48]
fnstsw ax
test ah, 0x41
je 0x53d66a
fld qword [edi]
fstp qword [esp + 0x48]
inc edx
add edi, 0x60
cmp edx, ecx
jl 0x53d657
fld qword [esp + 0x58]
fmul qword [0x5e2910]
xor edi, edi
mov dword [esp + 0x1c], 0
test ecx, ecx
fadd qword [esp + 0x48]
mov dword [esp + 0x20], 0
fmul qword [0x5e7968]
fstp qword [esp + 0x48]
jle 0x53d6de
xor ebx, ebx
mov eax, dword [esi + 4]
lea edx, [esp + 0x48]
push edx
lea ecx, [ebx + eax]
movsx eax, word [ebx + eax + 0xe]
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x34]
mov edx, dword [edx + 0x24]
lea eax, [edx + eax*8]
push eax
call fcn.005276e0
fadd qword [esp + 0x1c]
mov eax, dword [esi + 8]
inc edi
add ebx, 0x60
cmp edi, eax
fstp qword [esp + 0x1c]
jl 0x53d6a2
fld qword [esp + 0x1c]
fmul qword [0x5e7930]
lea ecx, [esp + 0x48]
fstp qword [esp + 0x3c]
call fcn.004b7040
fdivr qword [esp + 0x3c]
fstp qword [esp + 0x1c]
fld qword [esp + 0x58]
fsub qword [0x5e46c8]
mov eax, dword [esi + 8]
xor edi, edi
test eax, eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
fstp qword [esp + 0x48]
jle 0x53d760
xor ebx, ebx
mov ecx, dword [esi + 4]
lea edx, [esp + 0x48]
add ecx, ebx
push edx
movsx eax, word [ecx + 0xe]
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x34]
mov edx, dword [edx + 0x24]
lea eax, [edx + eax*8]
push eax
call fcn.005276e0
fadd qword [esp + 0x14]
mov eax, dword [esi + 8]
inc edi
add ebx, 0x60
cmp edi, eax
fstp qword [esp + 0x14]
jl 0x53d726
lea ecx, [esp + 0x48]
call fcn.004b7040
fmul qword [esp + 0x1c]
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x53d77e
fld qword [esp + 0x48]
jmp 0x53d701
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
mov ebx, dword [ebp + 8]
mov edi, 5
lea ecx, [eax + eax*2]
mov dword [esp + 0x10], edi
shl ecx, 5
fld qword [ecx + edx - 0x18]
mov ecx, ebx
fstp qword [esp + 0x34]
call fcn.004b7060
fmul qword [0x5e7ac0]
fcomp qword [esp + 0x34]
fnstsw ax
test ah, 0x41
jne 0x53d7bf
mov edi, 8
mov dword [esp + 0x10], edi
mov ecx, ebx
call fcn.004b7060
fidiv dword [esp + 0x10]
fstp qword [esp + 0x3c]
fld qword [esp + 0x34]
fdiv qword [esp + 0x3c]
call sub.msvcrt.dll__ftol
mov dword [esp + 0x1c], eax
mov ecx, eax
fild dword [esp + 0x1c]
imul ecx, edi
fdivr qword [esp + 0x34]
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dword [esp + 0x68], 0x5e27e8
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], ecx
fstp qword [esp + 0x34]
fld qword [esp + 0x14]
fmul qword [0x5e7940]
fild dword [esp + 0x24]
fdivp st(1)
fstp qword [esp + 0x7c]
cmp edi, ecx
mov byte [esp + 0x1e0], 2
mov dword [esp + 0x24], ecx
jle 0x53d92c
fild dword [esp + 0x24]
test eax, eax
mov dword [esp + 0xc], 0
fmul qword [esp + 0x3c]
fst qword [esp + 0x50]
fadd qword [esp + 0x3c]
fstp qword [esp + 0x60]
jle 0x53d91b
fild dword [esp + 0xc]
mov eax, dword [esi + 8]
xor edi, edi
test eax, eax
fmul qword [esp + 0x34]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
fst qword [esp + 0x48]
fld qword [esp + 0x34]
fadd st(1)
fstp qword [esp + 0x58]
fstp st(0)
jle 0x53d8c9
xor ebx, ebx
mov edx, dword [esi + 4]
lea eax, [esp + 0x48]
push eax
movsx eax, word [ebx + edx + 0xe]
lea ecx, [ebx + edx]
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x34]
mov edx, dword [edx + 0x24]
lea eax, [edx + eax*8]
push eax
call fcn.005276e0
fadd qword [esp + 0x14]
mov eax, dword [esi + 8]
inc edi
add ebx, 0x60
cmp edi, eax
fstp qword [esp + 0x14]
jl 0x53d88d
fld qword [esp + 0x14]
fcomp qword [esp + 0x7c]
fnstsw ax
test ah, 1
je 0x53d900
mov edi, dword [esp + 0x70]
push 0xffffffffffffffff
lea ecx, [edi + 1]
push ecx
lea ecx, [esp + 0x70]
call fcn.0040bbc0
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x48]
shl edi, 5
add edi, ecx
push edx
mov ecx, edi
call fcn.004b6d90
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, ecx
mov dword [esp + 0xc], eax
jl 0x53d85a
mov edi, dword [esp + 0x10]
mov eax, ecx
mov ecx, dword [esp + 0x24]
inc ecx
cmp ecx, edi
mov dword [esp + 0x24], ecx
jl 0x53d836
mov ecx, dword [esi + 8]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 0x3ff00000
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], eax
jle 0x53d9eb
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x1c]
mov ecx, dword [esi + 4]
add edi, ecx
movsx eax, word [edi + 0xe]
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*8]
lea edx, [eax + ecx*2]
mov eax, dword [ebx + 0x24]
lea ecx, [eax + edx*8]
push ecx
mov ecx, edi
call fcn.00527650
fadd qword [esp + 0x14]
fst qword [esp + 0x14]
fdiv qword [edi + 0x48]
fcom qword [esp + 0x24]
fnstsw ax
test ah, 1
je 0x53d9b7
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 8]
inc eax
fstp qword [esp + 0x24]
add edx, 0x60
cmp eax, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], edx
jl 0x53d965
fld qword [esp + 0x24]
fcomp qword [esp + 0x34]
fnstsw ax
test ah, 0x41
jne 0x53da69
jmp 0x53d9ef
mov ebx, dword [esp + 0x30]
fld qword [ebp + 0xc]
fcom qword [ebx + 0x68]
fnstsw ax
test ah, 1
je 0x53da20
fst qword [ebx + 0x60]
fld qword [ebx + 0x68]
fsub st(1)
mov ecx, dword [esp + 0x10]
fmul qword [0x5e79a0]
fsubr st(1)
fstp qword [ebx + 0x68]
fstp st(0)
fld qword [0x5e27a8]
jmp 0x53dae6
fcom qword [ebx + 0x60]
fnstsw ax
test ah, 1
je 0x53da4c
fld qword [ebx + 0x60]
fsub st(1)
mov ecx, dword [esp + 0x10]
fmul qword [0x5e9c30]
fsubr st(1)
fstp qword [ebx + 0x68]
fstp qword [ebx + 0x60]
fld qword [0x5e27a8]
jmp 0x53dae6
fstp st(0)
fld qword [ebx + 0x68]
fadd qword [ebx + 0x60]
mov ecx, dword [esp + 0x10]
fmul qword [0x5e2790]
fstp qword [ebx + 0x68]
fld qword [0x5e27a8]
jmp 0x53dae6
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 4]
fld qword [ebp + 0xc]
lea edx, [ecx + ecx*2]
shl edx, 5
fld st(0)
fsub qword [edx + eax - 0x18]
fld qword [esp + 0x34]
fsub qword [esp + 0x24]
fmulp st(1)
fdiv qword [esp + 0x34]
fld st(1)
fcomp qword [ebx + 0x68]
fld st(1)
fnstsw ax
test ah, 1
je 0x53daad
fsub st(1)
fstp qword [ebx + 0x68]
fstp st(0)
fstp qword [ebx + 0x60]
fld qword [0x5f07f8]
jmp 0x53dae6
fcomp qword [ebx + 0x60]
fnstsw ax
test ah, 1
je 0x53dacd
fmul qword [0x5e79a0]
fsubr st(1)
fstp qword [ebx + 0x68]
fstp qword [ebx + 0x60]
fld qword [0x5f07f8]
jmp 0x53dae6
fstp st(0)
fstp st(0)
fld qword [ebx + 0x68]
fadd qword [ebx + 0x60]
fmul qword [0x5e2790]
fstp qword [ebx + 0x68]
fld qword [0x5efdc0]
mov edi, dword [ebp + 0x14]
xor eax, eax
mov edx, dword [edi + 8]
test edx, edx
jle 0x53db05
mov edx, dword [edi + 4]
inc eax
mov edx, dword [edx + eax*4 - 4]
mov byte [edx + 0x20], 0
mov edx, dword [edi + 8]
cmp eax, edx
jl 0x53daf2
mov eax, dword [esi + 8]
mov dword [esp + 0xc], ecx
cmp ecx, eax
jge 0x53db7c
lea edx, [ecx + ecx*2]
shl edx, 5
mov dword [esp + 0x1c], edx
mov eax, dword [esi + 4]
movsx eax, word [edx + eax + 0xe]
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*8]
lea eax, [eax + ecx*2]
mov ecx, dword [ebx + 0x24]
lea ecx, [ecx + eax*8]
xor eax, eax
cmp word [ecx + 0xa], ax
jle 0x53db65
lea edx, [ecx + 0xc]
jmp 0x53db41
mov edi, dword [ebp + 0x14]
movsx ebx, word [edx]
mov edi, dword [edi + 4]
inc eax
add edx, 2
mov edi, dword [edi + ebx*4]
mov byte [edi + 0x20], 1
movsx edi, word [ecx + 0xa]
cmp eax, edi
jl 0x53db3e
mov ebx, dword [esp + 0x30]
mov edi, dword [ebp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 8]
inc eax
add edx, 0x60
cmp eax, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], edx
jl 0x53db1a
mov eax, dword [edi + 8]
xor ecx, ecx
test eax, eax
jle 0x53dbbe
mov edx, dword [edi + 4]
mov eax, dword [edx + ecx*4]
mov dl, byte [eax + 0x20]
test dl, dl
je 0x53dbb6
mov edx, dword [eax + 0x10]
mov esi, dword [edx + 0x20]
inc esi
mov dword [edx + 0x20], esi
mov edx, dword [eax + 0x10]
fild dword [edx + 0x20]
fmul st(1)
fmul qword [0x5e27e0]
fadd qword [0x5e2858]
fmul qword [eax + 0x28]
fstp qword [eax + 0x28]
mov eax, dword [edi + 8]
inc ecx
cmp ecx, eax
jl 0x53db85
mov eax, dword [ebp + 8]
push edi
push eax
mov ecx, ebx
fstp st(0)
call fcn.005293c0
mov dword [esp + 0x68], 0x5e27e8
mov esi, dword [esp + 0x6c]
mov byte [esp + 0x1e0], 3
test esi, esi
je 0x53dc08
mov eax, dword [esp + 0x70]
test eax, eax
je 0x53dbff
lea edi, [eax]
mov ecx, esi
call fcn.0042bd50
add esi, 0x20
dec edi
jne 0x53dbee
mov esi, dword [esp + 0x6c]
push esi
call sub.mfc42u.dll_operatordelete
add esp, 4
lea ecx, [esp + 0x48]
mov dword [esp + 0x68], 0x5e262c
mov dword [esp + 0x1e0], 0xffffffff
call fcn.0042bd50
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x1d8]
xor eax, eax
test ebx, ebx
pop edi
pop esi
sete al
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x18