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

Disassembly:
sub esp, 0x10c
mov edx, dword [esp + 0x110]
push ebx
mov ebx, dword [edx + 0xc]
push ebp
push esi
push edi
mov ecx, ebx
mov dword [esp + 0x2c], ebx
call fcn.00543310
mov ecx, dword [edx + 0x58]
or esi, 0xffffffff
test ecx, ecx
je 0x535b0e
mov si, word [ecx]
jmp 0x535b20
mov ecx, dword [edx + 0x54]
cmp ecx, 0xffffffff
je 0x535b20
shl ecx, 4
mov si, word [ecx + 0x674840]
mov cx, word [edx + 0x10]
mov word [esp + 0x28], cx
cmp dword [0x75c0ac], 0xffff0101
jae 0x535b52
mov ecx, dword [ebx + 0x64]
test ecx, ecx
je 0x536689
mov edx, dword [ecx + 0x70]
test edx, edx
jne 0x535b68
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10c
ret
mov ecx, dword [ebx + 0x58]
test ecx, ecx
je 0x536689
mov edx, dword [ecx + 0x70]
test edx, edx
je 0x536689
mov ecx, dword [0x6b8344]
mov edx, dword [ecx]
movsx eax, ax
movsx esi, si
lea edi, [esi + esi*2]
lea eax, [eax + edi*2]
movsx eax, word [eax*2 + 0x639538]
mov eax, dword [eax*8 + 0x639258]
push eax
push ecx
call dword [edx + 0x170]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
lea edx, [esi + esi*2]
mov edx, dword [edx*4 + 0x67c988]
push edx
push eax
call dword [ecx + 0x15c]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x1ac]
mov eax, dword [ebx + 0x48]
xor ebp, ebp
test eax, eax
jle 0x535c30
xor eax, eax
jmp 0x535bd0
mov esi, dword [esp + 0x120]
mov edx, dword [ebx + 0x4c]
shl eax, 4
mov ecx, 0x2a
lea edi, [esp + 0x70]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x816d04]
mov dword [esp + 0x108], 0xffffffff
mov eax, dword [eax + edx + 0xc]
and eax, 0xffff
shl eax, 5
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [esp + 0x124]
push eax
lea ecx, [esp + 0x74]
push ecx
mov dword [esp + 0x84], edx
call fcn.005368b0
mov ecx, dword [ebx + 0x48]
add esp, 8
inc ebp
movsx eax, bp
cmp eax, ecx
jl 0x535bd0
mov eax, dword [0x6b8344]
mov edx, dword [eax]
xor ecx, ecx
mov cl, byte [ebx + 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 [0x6b8344]
mov edx, dword [eax]
push 7
push 0xa8
push eax
call dword [edx + 0xe4]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 1
push 0x1b
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
xor ecx, ecx
mov cl, byte [ebx + 0x29]
and ecx, 1
push ecx
push 0xf
push eax
call dword [edx + 0xe4]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 0x7f
push 0x18
push eax
call dword [edx + 0xe4]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 0
push 0x1c
push eax
call dword [ecx + 0xe4]
mov cx, word [ebx + 0x2c]
call fcn.0051c030
mov al, byte [ebx + 0x29]
test al, al
jns 0x535e19
mov eax, dword [esp + 0x120]
mov edx, dword [eax + 0x74]
test edx, edx
je 0x535e19
mov ecx, dword [ebx + 0x54]
test ecx, ecx
jle 0x535e19
mov ecx, dword [ebx + 0x58]
mov ecx, dword [ecx + 0x78]
mov esi, dword [0x816d04]
and ecx, 0xffff
shl ecx, 5
mov ecx, dword [ecx + esi + 0x14]
mov bp, word [ecx + 0x60]
test byte [ebx + 0x6c], 2
je 0x535d1a
movsx eax, word [eax + 0x10]
call fcn.00543670
mov dword [esp + 0x28], eax
jmp 0x535e19
movzx cx, byte [ebx + 0x28]
mov edx, dword [edx + 4]
xor eax, eax
cmp bp, 8
setne al
movsx edi, cx
mov dword [esp + 0x14], edi
sub esp, 8
fild dword [esp + 0x1c]
dec eax
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
and eax, 3
movsx esi, ax
shl esi, 2
fmul dword [edx + esi]
fadd dword [0x61221c]
fstp qword [esp]
call fcn.005c8f50
fstp dword [esp + 0x1c]
add esp, 8
fld dword [esp + 0x14]
fistp dword [esp + 0x18]
mov eax, dword [esp + 0x18]
test eax, eax
jge 0x535d77
xor eax, eax
jmp 0x535ded
mov eax, dword [esp + 0x120]
fld dword [esp + 0x10]
mov ecx, dword [eax + 0x74]
mov edx, dword [ecx + 4]
fmul dword [edx + esi]
sub esp, 8
fadd dword [0x61221c]
fstp qword [esp]
call fcn.005c8f50
fstp dword [esp + 0x1c]
add esp, 8
fld dword [esp + 0x14]
fistp dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jle 0x535db5
mov eax, edi
jmp 0x535ded
mov eax, dword [esp + 0x120]
fld dword [esp + 0x10]
mov ecx, dword [eax + 0x74]
mov edx, dword [ecx + 4]
fmul dword [edx + esi]
sub esp, 8
fadd dword [0x61221c]
fstp qword [esp]
call fcn.005c8f50
fstp dword [esp + 0x1c]
add esp, 8
fld dword [esp + 0x14]
fistp dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x120]
mov cx, word [ecx + 0x10]
test cx, cx
jle 0x535e0c
movsx esi, bp
movzx ecx, cx
movsx eax, ax
cdq
idiv esi
dec ecx
jne 0x535e03
movsx eax, ax
movsx ecx, bp
cdq
idiv ecx
mov dword [esp + 0x28], edx
mov eax, dword [0x75c0ac]
xor esi, esi
cmp eax, 0xffff0101
jae 0x535e4f
mov si, word [ebx + 0x60]
test si, si
mov dword [esp + 0x1c], esi
jle 0x535e73
mov eax, dword [ebx + 0x64]
lea ecx, [esp + 0x60]
movzx edx, si
mov edi, edi
mov dword [ecx], eax
add eax, 0xdc
add ecx, 4
dec edx
jne 0x535e40
jmp 0x535e73
mov si, word [ebx + 0x54]
test si, si
mov dword [esp + 0x1c], esi
jle 0x535e73
mov eax, dword [ebx + 0x58]
lea ecx, [esp + 0x60]
movzx edx, si
mov dword [ecx], eax
add eax, 0xdc
add ecx, 4
dec edx
jne 0x535e66
xor edi, edi
test si, si
mov dword [esp + 0x14], edi
jle 0x536155
cmp di, word [esp + 0x1c]
jge 0x536108
xor eax, eax
test di, di
mov ax, word [ebx + 0x2a]
movsx esi, di
mov ebp, dword [esp + esi*4 + 0x60]
mov dword [esp + 0x18], eax
je 0x535ead
mov dword [esp + 0x10], 0
jmp 0x535ebd
movsx edx, ax
mov ax, word [edx*2 + 0x5fca08]
mov word [esp + 0x10], ax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x78]
push ecx
push 0
push edx
push edi
call fcn.0051c210
add esp, 0x10
cmp word [esp + 0x10], 0
jne 0x535eea
test byte [ebp], 4
je 0x535eea
mov ecx, 3
jmp 0x535f0a
test di, di
je 0x535ef6
mov ecx, 1
jmp 0x535f02
movsx eax, word [esp + 0x18]
mov ecx, dword [eax*4 + 0x5fca10]
cmp word [esp + 0x10], 0
jne 0x535f1a
test byte [ebp], 8
je 0x535f1a
mov dword [esp + 0x10], 3
jmp 0x535f39
test di, di
je 0x535f29
mov dword [esp + 0x10], 1
jmp 0x535f39
movsx edx, word [esp + 0x18]
mov eax, dword [edx*4 + 0x5fca10]
mov dword [esp + 0x10], eax
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push ecx
push 1
push esi
push eax
call dword [edx + 0x114]
mov edx, dword [esp + 0x10]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push edx
push 2
push esi
push eax
call dword [ecx + 0x114]
test di, di
je 0x535f6d
mov ecx, 1
jmp 0x535f79
movsx eax, word [esp + 0x18]
mov ecx, dword [eax*4 + 0x5fca10]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push ecx
push 3
push esi
push eax
call dword [edx + 0x114]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 2
push 5
push esi
push eax
call dword [ecx + 0x114]
mov cl, byte [ebp]
mov eax, dword [0x6b8344]
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 [ebp]
mov eax, dword [0x6b8344]
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]
xor ecx, ecx
test di, di
jg 0x535fed
cmp word [ebx + 0x2a], cx
jne 0x5360ad
cmp di, cx
mov edx, dword [ebp + 0x54]
mov eax, dword [ebp + 0x58]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
jne 0x536029
test byte [ebx + 0x29], 0x40
je 0x53602b
fld dword [esp + 0x20]
mov eax, dword [esp + 0x120]
fmul dword [eax + 0x78]
fchs
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fmul dword [eax + 0x78]
fchs
fstp dword [esp + 0x24]
jmp 0x536032
jg 0x53603a
mov eax, dword [esp + 0x120]
test byte [ebx + 0x29], 8
jne 0x536057
jmp 0x536041
mov eax, dword [esp + 0x120]
fld dword [esp + 0x20]
fmul dword [eax + 0x3c]
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fmul dword [eax + 0x40]
fstp dword [esp + 0x24]
fld qword [0x75c130]
mov edx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x5c]
push ecx
mov ecx, dword [ebp + 0x64]
fstp dword [esp]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x130]
shl esi, 5
push ecx
mov ecx, dword [eax + 0x74]
lea edi, [esp + esi + 0x94]
lea ebx, [esp + esi + 0x84]
push edx
lea esi, [ebp + 0xa4]
call fcn.00543400
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
add esp, 0x18
jmp 0x536141
test byte [ebx + 0x29], 8
je 0x53610a
fld dword [0x75c1e4]
shl esi, 5
fstp dword [esp + esi + 0x70]
mov dword [esp + esi + 0x7c], ecx
fld dword [0x75c1e8]
mov dword [esp + esi + 0x8c], ecx
fstp dword [esp + esi + 0x74]
fld dword [0x75c1ec]
fstp dword [esp + esi + 0x78]
fld dword [0x75c1f0]
fstp dword [esp + esi + 0x80]
fld dword [0x75c1f4]
fstp dword [esp + esi + 0x84]
fld dword [0x75c1f8]
fstp dword [esp + esi + 0x88]
jmp 0x536141
xor ecx, ecx
movsx eax, di
shl eax, 5
mov edx, 0x3f800000
mov dword [esp + eax + 0x70], edx
mov dword [esp + eax + 0x74], ecx
mov dword [esp + eax + 0x78], ecx
mov dword [esp + eax + 0x7c], ecx
mov dword [esp + eax + 0x80], ecx
mov dword [esp + eax + 0x84], edx
mov dword [esp + eax + 0x88], ecx
mov dword [esp + eax + 0x8c], ecx
inc edi
cmp di, word [esp + 0x1c]
mov dword [esp + 0x14], edi
jl 0x535e8d
mov esi, dword [esp + 0x1c]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 8
lea edx, [esp + 0x74]
push edx
push 0xd
push eax
call dword [ecx + 0x178]
test eax, eax
mov edi, dword [esp + 0x120]
jl 0x53617f
mov ecx, dword [edi + 0xc]
call fcn.0053b1b0
test byte [edi], 0x10
je 0x53618f
cmp word [ebx + 0x2c], 0
je case.default.0x5362cc
cmp word [edi + 0x14], 1
mov cx, word [ebx + 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 0x536239
test byte [ebx + 0x6c], 1
jne 0x536239
fld dword [0x612224]
fsub dword [edi + 0x18]
fcom dword [0x612220]
fnstsw ax
test ah, 5
jp 0x536220
fstp st(0)
fld dword [0x612220]
jmp 0x536235
fcom dword [0x612224]
fnstsw ax
test ah, 0x41
jne 0x536235
fstp st(0)
fld dword [0x612224]
fstp dword [esp + 0x58]
test cx, cx
jle 0x536280
mov eax, dword [edi + 0x74]
test eax, eax
je 0x536280
mov eax, dword [eax + 4]
test eax, eax
je 0x536280
movsx ecx, cx
fld dword [eax + ecx*4 - 4]
lea ecx, [eax + ecx*4 - 4]
fld dword [0x612220]
fucompp
fnstsw ax
test ah, 0x44
jp 0x536276
cmp dword [0x75c0ac], 0xffff0101
jb 0x536689
fld dword [esp + 0x58]
fmul dword [ecx]
fstp dword [esp + 0x58]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 3
lea ecx, [esp + 0x34]
push ecx
push 0xa
push eax
call dword [edx + 0x178]
movsx eax, word [ebx + 0x2e]
sub eax, 0
je 0x5362b4
dec eax
je 0x5362ad
dec eax
jne 0x5362bb
mov edi, 4
jmp 0x5362bf
mov edi, 0x24
jmp 0x5362bf
mov edi, 0x20
jmp 0x5362bf
mov edi, dword [esp + 0x2c]
movsx eax, word [ebx + 0x2c]
cmp eax, 7
ja case.default.0x5362cc
jmp dword [eax*4 + 0x536694]
cmp dword [0x75c078], 2
jne 0x536310
cmp si, 2
jl 0x536310
movsx eax, si
lea esi, [eax - 1]
cmp esi, 1
jg 0x5362f2
mov esi, 1
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
push edi
push 6
push 0
jmp 0x53661a
mov esi, dword [esp + 0x1c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 2
movsx ebp, si
push 1
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 1
push 2
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 4
push 4
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 1
push 5
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push edi
push 6
push ebp
push eax
call dword [edx + 0x10c]
jmp 0x536628
cmp dword [0x75c078], 2
ja 0x536393
movsx eax, si
lea esi, [eax - 1]
cmp esi, 1
jg 0x536393
mov esi, 1
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 0x19
movsx ebp, si
push 1
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
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 [0x6b8344]
mov edx, dword [eax]
push 1
push 3
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push edi
push 0x1a
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 2
push 4
push ebp
push eax
call dword [edx + 0x10c]
push 1
push 5
push ebp
jmp 0x53661a
cmp dword [0x75c078], 2
ja 0x53641b
movsx eax, si
lea esi, [eax - 1]
cmp esi, 1
jg 0x53641b
mov esi, 1
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 0x7f7f7f7f
push 0x3c
push eax
call dword [edx + 0xe4]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 0x1a
movsx ebx, si
push 1
push ebx
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push edi
push 2
push ebx
push eax
call dword [edx + 0x10c]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 1
push 3
push ebx
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 3
push 0x1a
push ebx
push eax
call dword [edx + 0x10c]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 2
push 4
push ebx
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 1
push 5
push ebx
push eax
call dword [edx + 0x10c]
jmp 0x536628
cmp dword [0x75c078], 2
jne 0x5364f4
cmp si, 2
jl 0x5364f4
movsx eax, si
lea esi, [eax - 1]
cmp esi, 1
jg 0x5364c8
mov esi, 1
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push edi
push 3
push 0
push eax
call dword [edx + 0x10c]
jmp 0x536628
mov esi, dword [esp + 0x1c]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 4
movsx ebp, si
push 1
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 1
push 2
push ebp
push eax
call dword [edx + 0x10c]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push edi
push 3
push ebp
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 2
push 4
push ebp
push eax
call dword [edx + 0x10c]
push 1
push 5
push ebp
jmp 0x53661a
cmp dword [0x75c078], 2
jne 0x5365b1
cmp si, 2
jl 0x5365b1
movsx eax, si
lea esi, [eax - 1]
cmp esi, 1
jg 0x53656f
mov esi, 1
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 4
push 1
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push edi
push 3
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
push edi
push 6
push 0
jmp 0x53661a
mov esi, dword [esp + 0x1c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 4
movsx ebx, si
push 1
push ebx
push eax
call dword [edx + 0x10c]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 1
push 2
push ebx
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push edi
push 3
push ebx
push eax
call dword [edx + 0x10c]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 4
push 4
push ebx
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 1
push 5
push ebx
push eax
call dword [edx + 0x10c]
push edi
push 6
push ebx
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10c]
inc esi
mov eax, dword [0x6b8344]
mov edx, dword [eax]
movsx esi, si
push 0
push esi
push eax
call dword [edx + 0x104]
mov eax, dword [0x6b8344]
mov ecx, dword [eax]
push 1
push 1
push esi
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x6b8344]
mov edx, dword [eax]
push 1
push 4
push esi
push eax
call dword [edx + 0x10c]
mov ecx, dword [esp + 0x120]
push 0
call fcn.005366c0
mov eax, dword [0x6b8344]
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, 0x10c
ret