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

Disassembly:
sub esp, 0xfc
mov edx, dword [esp + 0x100]
push ebx
push ebp
mov ebp, dword [edx + 0xc]
push esi
push edi
mov ecx, ebp
mov byte [esp + 0x17], 1
call fcn.0053b5e0
mov ecx, dword [edx + 0x58]
or esi, 0xffffffff
test ecx, ecx
je 0x52d78f
mov si, word [ecx]
jmp 0x52d7a1
mov ecx, dword [edx + 0x54]
cmp ecx, 0xffffffff
je 0x52d7a1
shl ecx, 4
mov si, word [ecx + 0x6d3078]
mov cx, word [edx + 0x10]
mov word [esp + 0x1c], cx
mov ecx, dword [ebp + 0x58]
test ecx, ecx
je 0x52e29a
mov edx, dword [ecx + 0x70]
test edx, edx
je 0x52e29a
movsx esi, si
movsx eax, ax
lea edx, [esi + esi*2]
lea ecx, [eax + edx*2]
movsx edx, word [ecx*2 + 0x697e08]
mov eax, dword [edx*8 + 0x697c00]
mov ecx, dword [0x70eda0]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x170]
test eax, eax
jge 0x52d7f4
mov byte [esp + 0x17], 0
mov ecx, dword [0x70eda0]
mov edx, dword [ecx]
lea eax, [esi + esi*2]
mov eax, dword [eax*4 + 0x6db130]
push eax
push ecx
call dword [edx + 0x15c]
test eax, eax
jge 0x52d817
mov byte [esp + 0x17], 0
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x1ac]
test eax, eax
jge 0x52d830
mov byte [esp + 0x17], 0
mov eax, dword [ebp + 0x48]
xor ebx, ebx
test eax, eax
jle 0x52d89d
xor eax, eax
jmp 0x52d840
mov esi, dword [esp + 0x110]
mov edx, dword [ebp + 0x4c]
shl eax, 4
mov ecx, 0x2a
lea edi, [esp + 0x60]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x86cff4]
mov dword [esp + 0xf8], 0xffffffff
mov eax, dword [eax + edx + 0xc]
and eax, 0xffff
shl eax, 5
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [esp + 0x114]
push eax
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + 0x74], edx
call fcn.0052f0e0
mov ecx, dword [ebp + 0x48]
add esp, 8
inc ebx
movsx eax, bx
cmp eax, ecx
jl 0x52d840
mov eax, dword [0x70eda0]
mov edx, dword [eax]
xor ecx, ecx
mov cl, byte [ebp + 0x29]
shr ecx, 1
not ecx
and ecx, 2
or ecx, 1
push ecx
push 0x16
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 7
push 0xa8
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 0x1b
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
xor ecx, ecx
mov cl, byte [ebp + 0x29]
and ecx, 1
push ecx
push 0xf
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 0x7f
push 0x18
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 0
push 0x1c
push eax
call dword [ecx + 0xe4]
mov cx, word [ebp + 0x2c]
call fcn.005140e0
mov al, byte [ebp + 0x29]
test al, al
jns 0x52da86
mov eax, dword [esp + 0x110]
mov edx, dword [eax + 0x74]
test edx, edx
je 0x52da86
mov ecx, dword [ebp + 0x54]
test ecx, ecx
jle 0x52da86
mov ecx, dword [ebp + 0x58]
mov ecx, dword [ecx + 0x78]
mov esi, dword [0x86cff4]
and ecx, 0xffff
shl ecx, 5
mov ecx, dword [ecx + esi + 0x14]
mov di, word [ecx + 0x60]
test byte [ebp + 0x60], 2
je 0x52d987
movsx eax, word [eax + 0x10]
call fcn.0053b940
mov dword [esp + 0x1c], eax
jmp 0x52da86
movzx cx, byte [ebp + 0x28]
mov edx, dword [edx + 4]
xor eax, eax
cmp di, 8
setne al
movsx ebx, cx
mov dword [esp + 0x18], ebx
sub esp, 8
fild dword [esp + 0x20]
dec eax
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
and eax, 3
movsx esi, ax
shl esi, 2
fmul dword [edx + esi]
fadd dword [0x66c408]
fstp qword [esp]
call fcn.0061f4e0
fstp dword [esp + 0x20]
add esp, 8
fld dword [esp + 0x18]
fistp dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
test eax, eax
jge 0x52d9e4
xor eax, eax
jmp 0x52da5a
mov eax, dword [esp + 0x110]
fld dword [esp + 0x20]
mov ecx, dword [eax + 0x74]
mov edx, dword [ecx + 4]
fmul dword [edx + esi]
sub esp, 8
fadd dword [0x66c408]
fstp qword [esp]
call fcn.0061f4e0
fstp dword [esp + 0x20]
add esp, 8
fld dword [esp + 0x18]
fistp dword [esp + 0x1c]
cmp dword [esp + 0x1c], ebx
jle 0x52da22
mov eax, ebx
jmp 0x52da5a
mov eax, dword [esp + 0x110]
fld dword [esp + 0x20]
mov ecx, dword [eax + 0x74]
mov edx, dword [ecx + 4]
fmul dword [edx + esi]
sub esp, 8
fadd dword [0x66c408]
fstp qword [esp]
call fcn.0061f4e0
fstp dword [esp + 0x20]
add esp, 8
fld dword [esp + 0x18]
fistp dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x110]
mov cx, word [ecx + 0x10]
test cx, cx
jle 0x52da79
movsx esi, di
movzx ecx, cx
movsx eax, ax
cdq
idiv esi
dec ecx
jne 0x52da70
movsx eax, ax
movsx ecx, di
cdq
idiv ecx
mov dword [esp + 0x1c], edx
xor ebx, ebx
mov dword [esp + 0x20], ebx
xor edi, edi
mov edi, edi
mov eax, dword [ebp + 0x54]
movsx esi, bx
cmp esi, eax
jge 0x52dbea
mov edx, dword [ebp + 0x58]
mov edi, esi
imul edi, edi, 0xdc
xor eax, eax
mov ax, word [ebp + 0x2a]
add edi, edx
test bx, bx
mov dword [esp + 0x18], eax
je 0x52dac4
mov dword [esp + 0x2c], 0
jmp 0x52dad4
movsx edx, ax
mov ax, word [edx*2 + 0x659278]
mov word [esp + 0x2c], ax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
mov eax, dword [edi + 0x78]
push ecx
push 0
push edx
push ebx
call fcn.00514470
add esp, 0x10
cmp word [esp + 0x2c], 0
jne 0x52db00
test byte [edi], 4
je 0x52db00
mov ecx, 3
jmp 0x52db20
test bx, bx
je 0x52db0c
mov ecx, 1
jmp 0x52db18
movsx eax, word [esp + 0x18]
mov ecx, dword [eax*4 + 0x659280]
cmp word [esp + 0x2c], 0
jne 0x52db2c
test byte [edi], 8
je 0x52db2c
mov ebx, 3
jmp 0x52db44
test bx, bx
je 0x52db38
mov ebx, 1
jmp 0x52db44
movsx edx, word [esp + 0x18]
mov ebx, dword [edx*4 + 0x659280]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push ecx
push 1
push esi
push eax
call dword [edx + 0x114]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push ebx
push 2
push esi
push eax
call dword [ecx + 0x114]
cmp word [esp + 0x20], 0
je 0x52db77
mov ecx, 1
jmp 0x52db83
movsx edx, word [esp + 0x18]
mov ecx, dword [edx*4 + 0x659280]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push ecx
push 3
push esi
push eax
call dword [edx + 0x114]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 2
push 5
push esi
push eax
call dword [ecx + 0x114]
mov cl, byte [edi]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
and cl, 1
neg cl
sbb ecx, ecx
add ecx, 2
push ecx
push 6
push esi
push eax
call dword [edx + 0x114]
mov cl, byte [edi]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
and cl, 1
neg cl
sbb ecx, ecx
add ecx, 2
push ecx
push 7
push esi
push eax
call dword [edx + 0x114]
mov ebx, dword [esp + 0x20]
xor edi, edi
mov eax, dword [ebp + 0x54]
cmp esi, eax
jge 0x52dd15
cmp bx, di
jg 0x52dc04
cmp word [ebp + 0x2a], di
jne 0x52dcca
mov edx, dword [ebp + 0x58]
mov eax, esi
imul eax, eax, 0xdc
mov ecx, dword [eax + edx + 0x58]
add eax, edx
cmp bx, di
mov edx, dword [eax + 0x54]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
jne 0x52dc4e
test byte [ebp + 0x29], 0x40
je 0x52dc50
fld dword [esp + 0x24]
mov ecx, dword [esp + 0x110]
fmul dword [ecx + 0x78]
fchs
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fmul dword [ecx + 0x78]
fchs
fstp dword [esp + 0x28]
jmp 0x52dc57
jg 0x52dc5f
mov ecx, dword [esp + 0x110]
test byte [ebp + 0x29], 8
jne 0x52dc7c
jmp 0x52dc66
mov ecx, dword [esp + 0x110]
fld dword [esp + 0x24]
fmul dword [ecx + 0x3c]
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fmul dword [ecx + 0x40]
fstp dword [esp + 0x28]
mov edx, dword [eax + 0x64]
fld qword [0x7b2a80]
push ecx
mov ecx, dword [eax + 0x60]
fstp dword [esp]
push edx
mov edx, dword [eax + 0x5c]
push ecx
mov ecx, dword [esp + 0x34]
shl esi, 5
push edx
mov edx, dword [esp + 0x34]
lea edi, [esp + esi + 0x80]
lea ebx, [esp + esi + 0x70]
push ecx
lea esi, [eax + 0xa4]
mov eax, dword [esp + 0x124]
mov ecx, dword [eax + 0x74]
push edx
call fcn.0053b6d0
mov ebx, dword [esp + 0x38]
add esp, 0x18
xor edi, edi
jmp 0x52dd3d
cmp esi, eax
jge 0x52dd15
test byte [ebp + 0x29], 8
je 0x52dd15
fld dword [0x7b2b44]
shl esi, 5
fstp dword [esp + esi + 0x60]
fld dword [0x7b2b48]
fstp dword [esp + esi + 0x64]
fld dword [0x7b2b4c]
fstp dword [esp + esi + 0x68]
fld dword [0x7b2b50]
fstp dword [esp + esi + 0x70]
fld dword [0x7b2b54]
fstp dword [esp + esi + 0x74]
fld dword [0x7b2b58]
fstp dword [esp + esi + 0x78]
jmp 0x52dd35
shl esi, 5
mov eax, 0x3f800000
mov dword [esp + esi + 0x60], eax
mov dword [esp + esi + 0x64], edi
mov dword [esp + esi + 0x68], edi
mov dword [esp + esi + 0x70], edi
mov dword [esp + esi + 0x74], eax
mov dword [esp + esi + 0x78], edi
mov dword [esp + esi + 0x6c], edi
mov dword [esp + esi + 0x7c], edi
inc ebx
cmp bx, 4
mov dword [esp + 0x20], ebx
jl 0x52da90
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 8
lea edx, [esp + 0x64]
push edx
push 0xd
push eax
call dword [ecx + 0x178]
test eax, eax
jl 0x52dd80
mov al, byte [esp + 0x17]
test al, al
je 0x52dd80
mov eax, dword [esp + 0x110]
mov ebx, dword [eax + 0xc]
call fcn.00533440
xor edi, edi
mov ecx, dword [esp + 0x110]
test byte [ecx], 0x10
mov si, word [ebp + 0x54]
je 0x52dd9a
cmp word [ebp + 0x2c], di
je case.default.0x52ded6
cmp word [ecx + 0x14], 1
mov dx, word [ebp + 0x30]
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0x3f800000
mov dword [esp + 0x5c], 0
jne 0x52de44
test byte [ebp + 0x60], 1
jne 0x52de44
fld dword [0x66c410]
fsub dword [ecx + 0x18]
fcom dword [0x66c40c]
fnstsw ax
test ah, 5
jp 0x52de2b
fstp st(0)
fld dword [0x66c40c]
jmp 0x52de40
fcom dword [0x66c410]
fnstsw ax
test ah, 0x41
jne 0x52de40
fstp st(0)
fld dword [0x66c410]
fstp dword [esp + 0x58]
cmp dx, di
jle 0x52de8b
mov ecx, dword [ecx + 0x74]
cmp ecx, edi
je 0x52de8b
mov eax, dword [ecx + 4]
cmp eax, edi
je 0x52de8b
movsx ecx, dx
fld dword [eax + ecx*4 - 4]
lea ecx, [eax + ecx*4 - 4]
fld dword [0x66c40c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x52de81
cmp dword [0x7b2a0c], 0xffff0101
jb 0x52e29a
fld dword [esp + 0x58]
fmul dword [ecx]
fstp dword [esp + 0x58]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 3
lea ecx, [esp + 0x34]
push ecx
push 0xa
push eax
call dword [edx + 0x178]
movsx eax, word [ebp + 0x2e]
sub eax, edi
je 0x52debe
dec eax
je 0x52deb7
dec eax
jne 0x52dec5
mov edi, 4
jmp 0x52dec9
mov edi, 0x24
jmp 0x52dec9
mov edi, 0x20
jmp 0x52dec9
mov edi, dword [esp + 0x18]
movsx eax, word [ebp + 0x2c]
cmp eax, 7
ja case.default.0x52ded6
jmp dword [eax*4 + 0x52e2a8]
cmp dword [0x7b29d8], 2
jne 0x52df19
mov eax, dword [ebp + 0x54]
cmp eax, 2
jl 0x52df19
lea esi, [eax - 1]
cmp esi, 1
jg 0x52defb
mov esi, 1
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
push edi
push 6
push 0
jmp 0x52e22b
mov si, word [ebp + 0x54]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 2
movsx ebp, si
push 1
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 2
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 4
push 4
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 5
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push edi
push 6
push ebp
push eax
call dword [edx + 0x10c]
jmp 0x52e239
cmp dword [0x7b29d8], 2
jbe 0x52df92
mov si, word [ebp + 0x54]
jmp 0x52dfa2
mov ebp, dword [ebp + 0x54]
lea esi, [ebp - 1]
cmp esi, 1
jg 0x52dfa2
mov esi, 1
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 0x19
movsx ebp, si
push 1
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
mov ecx, edi
or ecx, 0x10
push ecx
push 2
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 1
push 3
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push edi
push 0x1a
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 2
push 4
push ebp
push eax
call dword [edx + 0x10c]
push 1
push 5
jmp 0x52e22a
cmp dword [0x7b29d8], 2
jbe 0x52e01f
mov si, word [ebp + 0x54]
jmp 0x52e02f
mov ebp, dword [ebp + 0x54]
lea esi, [ebp - 1]
cmp esi, 1
jg 0x52e02f
mov esi, 1
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 0x7f7f7f7f
push 0x3c
push eax
call dword [edx + 0xe4]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 0x1a
movsx ebp, si
push 1
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push edi
push 2
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 3
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 3
push 0x1a
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 2
push 4
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 1
push 5
push ebp
push eax
call dword [edx + 0x10c]
jmp 0x52e239
cmp dword [0x7b29d8], 2
jne 0x52e107
mov eax, dword [ebp + 0x54]
cmp eax, 2
jl 0x52e107
lea esi, [eax - 1]
cmp esi, 1
jg 0x52e0db
mov esi, 1
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push edi
push 3
push 0
push eax
call dword [edx + 0x10c]
jmp 0x52e239
mov si, word [ebp + 0x54]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 4
movsx ebp, si
push 1
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 1
push 2
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push edi
push 3
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 2
push 4
push ebp
push eax
call dword [edx + 0x10c]
push 1
push 5
jmp 0x52e22a
cmp dword [0x7b29d8], 2
jne 0x52e1c2
mov eax, dword [ebp + 0x54]
cmp eax, 2
jl 0x52e1c2
lea esi, [eax - 1]
cmp esi, 1
jg 0x52e180
mov esi, 1
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 4
push 1
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push edi
push 3
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
push edi
push 6
push 0
jmp 0x52e22b
mov si, word [ebp + 0x54]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 4
movsx ebp, si
push 1
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 2
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push edi
push 3
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 4
push 4
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 1
push 5
push ebp
push eax
call dword [edx + 0x10c]
push edi
push 6
push ebp
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
inc esi
mov eax, dword [0x70eda0]
mov edx, dword [eax]
movsx esi, si
push 0
push esi
push eax
call dword [edx + 0x104]
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
push 1
push 1
push esi
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x70eda0]
mov edx, dword [eax]
push 1
push 4
push esi
push eax
call dword [edx + 0x10c]
mov ecx, dword [esp + 0x110]
push 0
call fcn.0052eef0
mov eax, dword [0x70eda0]
mov ecx, dword [eax]
add esp, 4
push 1
push 0xab
push eax
call dword [ecx + 0xe4]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret