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

Disassembly:
mov al, byte [0x3c6dc0]
sub esp, 0x40
test al, 1
push ebx
push ebp
push esi
mov esi, dword [esp + 0x5c]
jne 0x81d54
or dword [0x3c6dc0], 1
call fcn.000d383c
mov dword [0x3c6dbc], eax
mov cl, byte [0x3c6dc0]
mov eax, 2
test al, cl
jne 0x81d73
or dword [0x3c6dc0], eax
call fcn.000d383c
mov dword [0x3c6db8], eax
xor ebx, ebx
lea ebp, [edi + 0x6820]
mov eax, 0x217108
mov ecx, ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebx
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
jge 0x81da5
fadd dword [0x218ed8]
mov eax, dword [0x2f5b24]
imul eax, eax, 0x2c
fdiv dword [eax + 0x28bdac]
call fcn.0015c5d8
mov dword [esp + 0x48], eax
call fcn.000d383c
mov ecx, dword [0x3c6db8]
sub ecx, eax
cmp ecx, 0xfa
jbe 0x81def
call fcn.000d383c
mov dword [0x3c6db8], eax
mov eax, dword [0x3c6990]
inc eax
cdq
mov ecx, 7
idiv ecx
mov dword [0x3c6990], edx
mov al, byte [0x336d78]
test al, al
je 0x81e09
mov edx, dword [edi + 0x3134]
mov eax, dword [edx + 0x88]
jmp 0x81ee9
call fcn.000d383c
sub eax, dword [0x3c6dbc]
cmp eax, 0xa
jbe 0x81eee
call fcn.000d383c
mov dword [0x3c6dbc], eax
call fcn.0015b772
cdq
mov ecx, 3
idiv ecx
sub edx, ebx
je 0x81eaf
dec edx
mov eax, dword [0x28e9f4]
je 0x81e78
mov ecx, dword [0x28e9e8]
cmp ecx, ebx
jle 0x81e50
cmp al, 0xf0
je 0x81e56
cmp ecx, ebx
jge 0x81e5e
test al, al
jne 0x81e5e
neg ecx
mov dword [0x28e9e8], ecx
mov edx, eax
and edx, 0xff
lea ecx, [edx + ecx*8]
and eax, 0xffffff00
or ecx, eax
mov dword [0x28e9f4], ecx
jmp 0x81eee
mov ecx, dword [0x28e9ec]
cmp ecx, ebx
jle 0x81e89
cmp ah, 0xf0
je 0x81e8f
cmp ecx, ebx
jge 0x81e97
test ah, ah
jne 0x81e97
neg ecx
mov dword [0x28e9ec], ecx
movzx edx, ah
lea ecx, [edx + ecx*8]
shl ecx, 8
and eax, 0xffff00ff
or ecx, eax
mov dword [0x28e9f4], ecx
jmp 0x81eee
mov eax, dword [0x28e9f0]
cmp eax, ebx
mov cl, byte [0x28e9f6]
jle 0x81ec5
cmp cl, 0xf0
je 0x81ecb
cmp eax, ebx
jge 0x81ed2
test cl, cl
jne 0x81ed2
neg eax
mov dword [0x28e9f0], eax
mov edx, dword [0x28e9f4]
movzx ecx, cl
lea eax, [ecx + eax*8]
shl eax, 0x10
and edx, 0xff00ffff
or eax, edx
mov dword [0x28e9f4], eax
mov eax, dword [edi + 0x3134]
mov eax, dword [eax + 0x84]
cmp esi, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], eax
jle 0x81f3d
cmp dword [esp + 0x50], ebx
je 0x81f3d
cmp eax, ebx
je 0x81f3d
mov ebx, dword [esp + 0x54]
lea ecx, [ebx + 2]
cmp ecx, eax
mov dword [esp + 0x24], 1
jle 0x81f36
sub ebx, eax
add ebx, 3
lea edx, [eax + ebx - 2]
mov dword [esp + 0x38], edx
jmp 0x81f47
dec eax
mov dword [esp + 0x38], eax
jmp 0x81f42
dec esi
mov dword [esp + 0x38], esi
mov ebx, 1
mov eax, dword [esp + 0x5c]
mov esi, 1
cmp eax, esi
mov dword [esp + 0x3c], ebx
jle 0x81ffb
lea esp, [esp]
mov ecx, dword [ebp + 0xb8]
test ecx, ecx
mov eax, dword [esp + 0x58]
mov eax, dword [eax + esi*8]
je 0x81fb5
mov ecx, dword [ebp + 0xa8]
test ecx, ecx
je 0x81fb5
mov ecx, dword [ebp + 0xc8]
test ecx, ecx
je 0x81f97
push eax
call fcn.0015ab71
add esp, 4
imul eax, dword [ebp + 0xd0]
jmp 0x81fb7
mov ecx, dword [ebp + 0xb4]
lea edx, [esp + 0x44]
push edx
push 0xffffffffffffffff
push eax
push ecx
call fcn.000d9cfd
test eax, eax
jne 0x81fb5
mov eax, dword [esp + 0x44]
jmp 0x81fb7
xor eax, eax
test eax, eax
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
jge 0x81fc9
fadd dword [0x218ed8]
mov eax, dword [0x2f5b24]
imul eax, eax, 0x2c
fdiv dword [eax + 0x28bdac]
call fcn.0015c5d8
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x34]
add eax, edx
cmp eax, ecx
jle 0x81fee
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x5c]
inc esi
cmp esi, eax
jl 0x81f60
mov ecx, dword [esp + 0x5c]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x28], eax
jle 0x8281d
lea ecx, [ecx]
test eax, eax
je 0x82043
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x8202e
cmp eax, ebx
jl 0x8280c
cmp eax, dword [esp + 0x38]
jg 0x8280c
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x28]
mov ecx, dword [eax + esi*8]
mov ebx, dword [eax + esi*8 - 4]
mov dword [esp + 0x20], ecx
jmp 0x82051
mov edx, dword [esp + 0x58]
mov ebx, dword [edx]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x20], ebx
test ebx, ebx
mov dword [esp + 0x30], ebx
je 0x8281d
mov eax, dword [esp + 0x20]
test eax, eax
je 0x8281d
mov ecx, dword [edi + 0x3134]
mov eax, dword [ecx + 0x70]
sub eax, 0
je 0x82164
dec eax
je 0x820f8
test esi, esi
je 0x820ac
mov edx, dword [esp + 0x34]
mov eax, 0x280
sub eax, edx
cdq
sub eax, edx
mov edx, dword [ecx + 0x78]
sar eax, 1
add eax, edx
add eax, dword [edi + 0x6b2c]
mov edx, dword [esp + 0x60]
add edx, eax
mov dword [esp + 0x14], edx
jmp 0x8218e
mov eax, ebx
mov ecx, ebp
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x44], eax
fild dword [esp + 0x44]
jge 0x820c7
fadd dword [0x218ed8]
mov eax, dword [0x2f5b24]
imul eax, eax, 0x2c
fdiv dword [eax + 0x28bdac]
call fcn.0015c5d8
mov ecx, dword [edi + 0x3134]
mov edx, eax
mov eax, 0x280
sub eax, edx
cdq
sub eax, edx
mov edx, dword [ecx + 0x78]
sar eax, 1
add eax, edx
jmp 0x82188
test esi, esi
je 0x8211c
mov edx, dword [edi + 0x6b2c]
mov eax, dword [ecx + 0x78]
add eax, edx
sub eax, dword [esp + 0x34]
mov edx, dword [esp + 0x60]
add eax, 0x280
add edx, eax
mov dword [esp + 0x14], edx
jmp 0x8218e
mov eax, ebx
mov ecx, ebp
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x44], eax
fild dword [esp + 0x44]
jge 0x82137
fadd dword [0x218ed8]
mov eax, dword [0x2f5b24]
imul eax, eax, 0x2c
fdiv dword [eax + 0x28bdac]
call fcn.0015c5d8
mov ecx, dword [edi + 0x3134]
mov edx, eax
mov eax, dword [ecx + 0x78]
add eax, dword [edi + 0x6b2c]
sub eax, edx
add eax, 0x280
jmp 0x8218e
test esi, esi
je 0x82185
mov edx, dword [edi + 0x3134]
mov edx, dword [edx + 0x78]
mov eax, dword [edi + 0x6b2c]
add eax, edx
mov edx, dword [esp + 0x60]
add edx, eax
mov dword [esp + 0x14], edx
jmp 0x8218e
mov eax, dword [ecx + 0x78]
add eax, dword [edi + 0x6b2c]
mov edx, dword [ecx + 0x74]
sub edx, 0
mov dword [esp + 0x10], eax
je 0x82306
dec edx
je 0x82294
mov edx, dword [esp + 0x2c]
test esi, esi
mov esi, dword [esp + 0x24]
je 0x82236
test esi, esi
jne 0x821bd
mov edx, dword [esp + 0x5c]
mov ecx, dword [ecx + 0xa0]
imul ecx, edx
cmp ecx, 0x1e0
jbe 0x821f1
mov ecx, dword [edi + 0x3134]
mov esi, dword [ecx + 0xa0]
imul esi, dword [esp + 0x18]
add esi, dword [edi + 0x6b30]
add esi, dword [ecx + 0x7c]
mov dword [esp + 0x1c], esi
jmp 0x82344
test esi, esi
mov edx, dword [esp + 0x2c]
jne 0x821fd
mov edx, dword [esp + 0x5c]
mov ebx, dword [edi + 0x3134]
mov ecx, dword [ebx + 0xa0]
imul edx, ecx
imul ecx, dword [esp + 0x18]
mov esi, 0x1e0
sub esi, edx
mov edx, dword [edi + 0x6b30]
shr esi, 1
add esi, ecx
mov ecx, dword [ebx + 0x7c]
mov ebx, dword [esp + 0x30]
add esi, edx
add esi, ecx
mov dword [esp + 0x1c], esi
jmp 0x82344
test esi, esi
jne 0x8223e
mov edx, dword [esp + 0x5c]
mov ecx, dword [ecx + 0xa0]
imul ecx, edx
cmp ecx, 0x1e0
ja 0x8232a
test esi, esi
mov edx, dword [esp + 0x2c]
jne 0x8225f
mov edx, dword [esp + 0x5c]
mov ebx, dword [edi + 0x3134]
mov ecx, dword [ebx + 0xa0]
imul edx, ecx
imul ecx, dword [esp + 0x18]
mov esi, 0x1e0
sub esi, edx
mov edx, dword [edi + 0x6b30]
shr esi, 1
add esi, ecx
mov ecx, dword [ebx + 0x7c]
mov ebx, dword [esp + 0x30]
add esi, edx
add esi, ecx
jmp 0x82344
test esi, esi
mov ecx, dword [esp + 0x24]
je 0x822d3
test ecx, ecx
mov ecx, dword [esp + 0x2c]
jne 0x822a8
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x18]
mov edx, dword [edi + 0x3134]
sub ecx, esi
imul ecx, dword [edx + 0xa0]
mov esi, dword [edi + 0x6b30]
mov edx, dword [edx + 0x7c]
sub esi, ecx
lea esi, [esi + edx + 0x1e0]
mov dword [esp + 0x1c], esi
jmp 0x82344
test ecx, ecx
mov ecx, dword [esp + 0x2c]
jne 0x822df
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x18]
mov edx, dword [edi + 0x3134]
sub ecx, esi
imul ecx, dword [edx + 0xa0]
mov esi, dword [edi + 0x6b30]
sub esi, ecx
mov ecx, dword [edx + 0x7c]
lea esi, [esi + ecx + 0x1e0]
jmp 0x82344
test esi, esi
je 0x8232a
mov ecx, dword [edi + 0x3134]
mov esi, dword [ecx + 0xa0]
imul esi, dword [esp + 0x18]
add esi, dword [edi + 0x6b30]
add esi, dword [ecx + 0x7c]
mov dword [esp + 0x1c], esi
jmp 0x82344
mov ecx, dword [edi + 0x3134]
mov esi, dword [ecx + 0xa0]
imul esi, dword [esp + 0x18]
add esi, dword [edi + 0x6b30]
add esi, dword [ecx + 0x7c]
test eax, eax
mov dword [esp + 0xc], esi
jge 0x82352
xor eax, eax
mov dword [esp + 0x10], eax
test esi, esi
jge 0x8235c
xor esi, esi
mov dword [esp + 0xc], esi
mov ecx, 0x280
cmp eax, ecx
jle 0x82369
mov dword [esp + 0x10], ecx
cmp esi, 0x1e0
jle 0x8237a
mov esi, 0x1e0
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x14]
test eax, eax
jge 0x82388
xor eax, eax
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x1c]
test edx, edx
jge 0x82396
xor edx, edx
mov dword [esp + 0x1c], edx
cmp eax, ecx
jle 0x8239e
mov dword [esp + 0x14], ecx
cmp edx, 0x1e0
jle 0x823ae
mov dword [esp + 0x1c], 0x1e0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x8259d
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x82527
mov edx, dword [esp + 0x54]
inc edx
cmp edx, eax
jne 0x82527
cmp word [ebx], 0x2a
jne 0x823e7
mov eax, dword [esp + 0x20]
cmp word [eax], 0x2a
je 0x82527
fild dword [esp + 0x10]
mov eax, dword [edi + 0x3b88]
mov ecx, dword [edi + 0x3134]
mov edx, dword [eax + 0x1034]
test edx, edx
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [ecx + 0x520]
fild dword [eax + 0x1034]
jge 0x8241b
fadd dword [0x218ed8]
fsubp st(1)
fstp dword [eax + 0x1010]
mov eax, dword [edi + 0x3134]
fild dword [esp + 0xc]
mov ecx, dword [edi + 0x3b88]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fadd dword [eax + 0x524]
mov eax, dword [esp + 0x20]
fstp dword [ecx + 0x1014]
mov ebx, dword [edi + 0x3b88]
fild dword [esp + 0x14]
mov ecx, ebp
add ebx, 0x10a0
fstp dword [esp + 0x44]
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
jge 0x82478
fadd dword [0x218ed8]
mov edx, dword [0x2f5b24]
imul edx, edx, 0x2c
mov eax, dword [edi + 0x3134]
fdiv dword [edx + 0x28bdac]
fadd dword [eax + 0x558]
fadd dword [esp + 0x44]
fstp dword [ebx + 0x50]
mov ecx, dword [edi + 0x3134]
fild dword [esp + 0x1c]
mov edx, dword [edi + 0x3b88]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fadd dword [ecx + 0x55c]
fstp dword [edx + 0x10f4]
mov eax, dword [edi + 0x3134]
mov ecx, dword [eax + 0x9c]
mov edx, dword [eax + 0x98]
mov eax, dword [eax + 0x8c]
push ecx
mov ecx, dword [esp + 0x34]
push 0
push 0
push 1
push edx
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x28]
push edx
push ecx
mov ecx, ebp
call fcn.0006b300
mov eax, dword [edi + 0x3134]
mov edx, dword [eax + 0x9c]
mov ecx, dword [eax + 0x98]
mov eax, dword [eax + 0x8c]
push edx
mov edx, dword [esp + 0x24]
push 0
push 0
push 1
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x5c]
push ecx
jmp 0x82609
mov eax, dword [edi + 0x3134]
fild dword [esp + 0x10]
mov ecx, dword [eax + 0x9c]
mov edx, dword [eax + 0x98]
mov eax, dword [eax + 0x88]
fstp dword [esp + 0x10]
fild dword [esp + 0xc]
push ecx
push 0
push 0
push 0
push edx
push ebx
push ecx
mov ecx, dword [esp + 0x2c]
fstp dword [esp]
push ecx
mov ecx, ebp
call fcn.0006b300
fild dword [esp + 0x1c]
mov eax, dword [edi + 0x3134]
mov edx, dword [eax + 0x9c]
mov ecx, dword [eax + 0x98]
mov eax, dword [eax + 0x88]
push edx
mov edx, dword [esp + 0x24]
push 0
push 0
push 0
push ecx
push edx
sub esp, 8
fstp dword [esp + 4]
fild dword [esp + 0x34]
fstp dword [esp]
jmp 0x8260a
mov eax, dword [esp + 0x50]
test eax, eax
je 0x825b3
mov eax, dword [esp + 0x54]
inc eax
jne 0x825b3
mov edx, 1
jmp 0x825b5
xor edx, edx
mov eax, dword [esp + 0x50]
test eax, eax
je 0x825d2
mov ecx, dword [esp + 0x54]
inc ecx
jne 0x825d2
mov eax, dword [edi + 0x3134]
mov eax, dword [eax + 0x8c]
jmp 0x825d7
mov eax, dword [0x28e9f4]
mov ecx, dword [edi + 0x3134]
fild dword [esp + 0x10]
mov ebx, dword [ecx + 0x9c]
push ebx
push 0
fstp dword [esp + 0x18]
fild dword [esp + 0x14]
push 0
push edx
mov edx, dword [ecx + 0x98]
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x24]
push ecx
push ecx
fstp dword [esp]
push edx
mov ecx, ebp
call fcn.0006b300
mov eax, dword [esp + 0x24]
test eax, eax
je 0x827fb
mov al, byte [0x28bcd4]
test al, al
je 0x827fb
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x28], eax
jne 0x82714
mov ecx, dword [esp + 0x5c]
dec ecx
cmp eax, ecx
jge 0x82714
mov eax, dword [edi + 0x3134]
mov edx, dword [eax + 0x9c]
mov ecx, dword [eax + 0x80]
push edx
mov edx, dword [eax + 0x98]
mov eax, dword [eax + 0x88]
push ecx
mov ecx, dword [0x3c6990]
push 0
push 0
push edx
lea edx, [esi + ecx*2 - 6]
mov dword [esp + 0x58], edx
fild dword [esp + 0x58]
push 0x217108
sub esp, 8
fstp dword [esp + 4]
mov ecx, ebp
fild dword [esp + 0x68]
fsubr dword [esp + 0x30]
fstp dword [esp]
call fcn.0006b300
mov ebx, dword [edi + 0x3134]
mov eax, dword [ebx + 0x9c]
mov ecx, dword [ebx + 0x80]
mov edx, dword [ebx + 0x98]
push eax
mov eax, dword [0x3c6990]
push ecx
push 0
push 0
lea ecx, [esi + eax*2 - 6]
mov eax, dword [esp + 0x30]
push edx
mov dword [esp + 0x58], ecx
fild dword [esp + 0x58]
push 0x217108
push ecx
mov ecx, ebp
fstp dword [esp]
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
jge 0x826f0
fadd dword [0x218ed8]
mov edx, dword [0x2f5b24]
imul edx, edx, 0x2c
mov eax, dword [ebx + 0x88]
push ecx
fdiv dword [edx + 0x28bdac]
mov ecx, ebp
fiadd dword [esp + 0x34]
fstp dword [esp]
call fcn.0006b300
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x28], eax
jne 0x827fb
cmp eax, 1
jle 0x827fb
mov eax, dword [edi + 0x3134]
mov ecx, dword [eax + 0x9c]
mov edx, dword [eax + 0x80]
push ecx
mov ecx, dword [eax + 0x98]
mov eax, dword [eax + 0x88]
push edx
mov edx, dword [0x3c6990]
push 0
push 0
push ecx
lea ecx, [esi + edx*2 - 6]
mov dword [esp + 0x58], ecx
fild dword [esp + 0x58]
push 0x217104
sub esp, 8
fstp dword [esp + 4]
mov ecx, ebp
fild dword [esp + 0x68]
fsubr dword [esp + 0x30]
fstp dword [esp]
call fcn.0006b300
mov ebx, dword [edi + 0x3134]
mov edx, dword [ebx + 0x9c]
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x98]
push edx
mov edx, dword [0x3c6990]
push eax
push 0
push 0
push ecx
lea eax, [esi + edx*2 - 6]
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
mov eax, dword [esp + 0x34]
push 0x217104
push ecx
mov ecx, ebp
fstp dword [esp]
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
jge 0x827d7
fadd dword [0x218ed8]
mov ecx, dword [0x2f5b24]
imul ecx, ecx, 0x2c
mov eax, dword [ebx + 0x88]
push ecx
fdiv dword [ecx + 0x28bdac]
mov ecx, ebp
fiadd dword [esp + 0x34]
fstp dword [esp]
call fcn.0006b300
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x5c]
inc eax
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x82010
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x14