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

Disassembly:
mov al, byte [0x3c6db4]
sub esp, 0x30
test al, 1
push ebx
push ebp
mov ebp, dword [esp + 0x40]
push edi
mov edi, dword [esp + 0x48]
jne 0x82858
or dword [0x3c6db4], 1
call fcn.000d383c
mov dword [0x3c6db0], eax
mov cl, byte [0x3c6db4]
mov eax, 2
test al, cl
jne 0x82877
or dword [0x3c6db4], eax
call fcn.000d383c
mov dword [0x3c6dac], eax
mov cl, byte [0x3c6db4]
mov eax, 4
test al, cl
jne 0x82896
or dword [0x3c6db4], eax
call fcn.000d383c
mov dword [0x3c6da8], eax
lea ebx, [esi + 0x6820]
mov eax, 0x217108
mov ecx, ebx
mov dword [esp + 0x14], 0
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
jge 0x828c2
fadd dword [0x218ed8]
mov eax, dword [0x2f5b24]
imul eax, eax, 0x2c
fdiv dword [eax + 0x28bdac]
call fcn.0015c5d8
mov ecx, dword [esi + 0x3134]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x50]
test eax, eax
mov dword [esp + 0x2c], ecx
je 0x828f7
lea edx, [esi + 0x24b4]
mov dword [esi + 0x3134], edx
mov eax, dword [edi + ebp*4 + 4]
push eax
call fcn.0015ab71
mov ecx, dword [0x3c698c]
add esp, 4
cmp ecx, eax
jb 0x82922
mov dword [0x3c698c], 0
call fcn.000d383c
mov dword [0x3c6db0], eax
call fcn.000d383c
mov ecx, dword [0x3c6da8]
sub ecx, eax
cmp ecx, 0xfa
jbe 0x82955
call fcn.000d383c
mov dword [0x3c6da8], eax
mov eax, dword [0x3c6988]
inc eax
cdq
mov ecx, 7
idiv ecx
mov dword [0x3c6988], edx
mov eax, dword [esp + 0x40]
test eax, eax
je 0x82a48
mov eax, dword [edi + ebp*4 + 4]
mov ecx, ebx
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
jge 0x8297e
fadd dword [0x218ed8]
mov edx, dword [0x2f5b24]
mov eax, dword [esi + 0x3134]
imul edx, edx, 0x2c
fild dword [eax + 0x80]
fmul dword [edx + 0x28bdac]
fcompp
fnstsw ax
test ah, 5
jp 0x82a48
call fcn.000d383c
sub eax, dword [0x3c6db0]
cmp eax, 0xfa
jbe 0x82a5c
mov edx, dword [0x3c698c]
mov ecx, dword [0x28e9d4]
add edx, ecx
mov dword [0x3c698c], edx
call fcn.000d383c
mov dword [0x3c6db0], eax
mov eax, dword [0x3c698c]
test eax, eax
jge 0x829f9
mov dword [0x3c698c], 0
mov dword [0x28e9d4], 1
jmp 0x82a5c
mov edx, dword [edi + ebp*4 + 4]
lea eax, [edx + eax*2]
mov ecx, ebx
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
jge 0x82a19
fadd dword [0x218ed8]
mov eax, dword [0x2f5b24]
mov ecx, dword [esi + 0x3134]
imul eax, eax, 0x2c
fild dword [ecx + 0x80]
fmul dword [eax + 0x28bdac]
fcompp
fnstsw ax
test ah, 1
jne 0x82a5c
mov dword [0x28e9d4], 0xffffffff
jmp 0x82a5c
mov dword [0x3c698c], 0
call fcn.000d383c
mov dword [0x3c6db0], eax
mov edx, dword [edi + ebp*4 + 4]
push edx
call fcn.0015ab71
mov ecx, dword [0x3c698c]
add esp, 4
cmp ecx, eax
jb 0x82a87
mov dword [0x3c698c], 0
call fcn.000d383c
mov dword [0x3c6db0], eax
mov al, byte [0x336d78]
test al, al
je 0x82aa7
mov eax, dword [esi + 0x3134]
mov ecx, dword [eax + 0x88]
mov dword [0x28e9e4], ecx
jmp 0x82b8d
call fcn.000d383c
sub eax, dword [0x3c6dac]
cmp eax, 0xa
jbe 0x82b8d
call fcn.000d383c
mov dword [0x3c6dac], eax
call fcn.0015b772
cdq
mov ecx, 3
idiv ecx
sub edx, 0
je 0x82b4e
dec edx
mov eax, dword [0x28e9e4]
je 0x82b17
mov ecx, dword [0x28e9d8]
test ecx, ecx
jle 0x82aef
cmp al, 0xf0
je 0x82af5
test ecx, ecx
jge 0x82afd
test al, al
jne 0x82afd
neg ecx
mov dword [0x28e9d8], ecx
mov edx, eax
and edx, 0xff
lea ecx, [edx + ecx*8]
and eax, 0xffffff00
or ecx, eax
mov dword [0x28e9e4], ecx
jmp 0x82b8d
mov ecx, dword [0x28e9dc]
test ecx, ecx
jle 0x82b28
cmp ah, 0xf0
je 0x82b2e
test ecx, ecx
jge 0x82b36
test ah, ah
jne 0x82b36
neg ecx
mov dword [0x28e9dc], ecx
movzx edx, ah
lea ecx, [edx + ecx*8]
shl ecx, 8
and eax, 0xffff00ff
or ecx, eax
mov dword [0x28e9e4], ecx
jmp 0x82b8d
mov eax, dword [0x28e9e0]
test eax, eax
mov cl, byte [0x28e9e6]
jle 0x82b64
cmp cl, 0xf0
je 0x82b6a
test eax, eax
jge 0x82b71
test cl, cl
jne 0x82b71
neg eax
mov dword [0x28e9e0], eax
mov edx, dword [0x28e9e4]
movzx ecx, cl
lea eax, [ecx + eax*8]
shl eax, 0x10
and edx, 0xff00ffff
or eax, edx
mov dword [0x28e9e4], eax
mov eax, dword [esi + 0x3134]
mov edi, dword [eax + 0x84]
mov edx, dword [esp + 0x4c]
cmp edx, edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x34], edi
jle 0x82bdb
mov eax, dword [esp + 0x40]
test eax, eax
je 0x82bdb
test edi, edi
je 0x82bdb
lea eax, [ebp + 2]
cmp eax, edi
mov ecx, 1
mov dword [esp + 0x14], ecx
jle 0x82bd6
mov ecx, ebp
sub ecx, edi
add ecx, 3
lea eax, [ecx + edi - 2]
jmp 0x82be3
lea eax, [edi - 1]
jmp 0x82be3
mov ecx, 1
lea eax, [edx - 1]
mov dword [esp + 0x20], eax
xor eax, eax
test edx, edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], eax
jle 0x83300
lea esp, [esp]
mov edx, dword [esp + 0x48]
mov ebp, dword [edx + eax*4]
test ebp, ebp
mov dword [esp + 0x28], ebp
je 0x832ed
test eax, eax
je 0x82c31
mov edx, dword [esp + 0x14]
test edx, edx
je 0x82c31
cmp eax, ecx
jl 0x832c9
cmp eax, dword [esp + 0x20]
jg 0x832c9
mov ecx, dword [esi + 0x3134]
mov eax, dword [ecx + 0x70]
sub eax, 0
je 0x82d03
dec eax
mov ecx, ebx
mov eax, ebp
je 0x82ca1
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jge 0x82c61
fadd dword [0x218ed8]
mov eax, dword [0x2f5b24]
imul eax, eax, 0x2c
fdiv dword [eax + 0x28bdac]
call fcn.0015c5d8
mov ecx, dword [esi + 0x3134]
mov edx, eax
mov eax, dword [ecx + 0x80]
cmp edx, eax
jle 0x82c88
mov edx, eax
mov eax, 0x280
sub eax, edx
cdq
sub eax, edx
mov edx, dword [ecx + 0x78]
sar eax, 1
add eax, edx
add eax, dword [esi + 0x6b2c]
jmp 0x82d20
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jge 0x82cb8
fadd dword [0x218ed8]
mov ecx, dword [0x2f5b24]
imul ecx, ecx, 0x2c
fdiv dword [ecx + 0x28bdac]
call fcn.0015c5d8
mov ecx, dword [esi + 0x3134]
mov edx, eax
mov eax, dword [ecx + 0x80]
cmp edx, eax
jle 0x82ce0
mov edx, eax
mov eax, dword [ecx + 0x78]
add eax, dword [esi + 0x6b2c]
sub eax, edx
mov edx, dword [esp + 0x50]
add eax, 0x280
test edx, edx
mov dword [esp + 0x10], eax
je 0x82d24
mov edx, dword [ecx + 0x6c]
neg edx
jmp 0x82d1d
mov edx, dword [esi + 0x6b2c]
mov eax, dword [ecx + 0x78]
add eax, edx
mov edx, dword [esp + 0x50]
test edx, edx
mov dword [esp + 0x10], eax
je 0x82d24
mov edx, dword [ecx + 0x6c]
lea eax, [eax + edx*2]
mov dword [esp + 0x10], eax
mov edx, dword [ecx + 0x74]
sub edx, 0
je 0x82f1f
dec edx
mov edx, dword [esp + 0x14]
je 0x82ed7
test edx, edx
mov edx, edi
jne 0x82d45
mov edx, dword [esp + 0x4c]
mov edi, dword [ecx + 0xa0]
imul edx, edi
cmp edx, 0x1e0
jbe 0x82d6a
imul edi, dword [esp + 0x18]
add edi, dword [ecx + 0x7c]
add edi, dword [esi + 0x6b30]
mov dword [esp + 0xc], edi
jmp 0x82da8
mov edx, dword [esp + 0x14]
test edx, edx
mov ebp, dword [esp + 0x34]
jne 0x82d7a
mov ebp, dword [esp + 0x4c]
mov edx, dword [ecx + 0xa0]
imul ebp, edx
imul edx, dword [esp + 0x18]
mov edi, 0x1e0
sub edi, ebp
mov ebp, dword [ecx + 0x7c]
shr edi, 1
add edi, edx
mov edx, dword [esi + 0x6b30]
add edi, ebp
add edi, edx
mov dword [esp + 0xc], edi
mov ebp, dword [esp + 0x28]
test eax, eax
jge 0x82db2
xor eax, eax
mov dword [esp + 0x10], eax
test edi, edi
jge 0x82dbc
xor edi, edi
mov dword [esp + 0xc], edi
cmp eax, 0x280
jle 0x82dcb
mov dword [esp + 0x10], 0x280
cmp edi, 0x1e0
jle 0x82ddc
mov edi, 0x1e0
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x40]
test eax, eax
je 0x82fca
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x1c]
inc eax
cmp eax, edx
jne 0x82fca
fild dword [esp + 0x10]
mov eax, dword [esi + 0x3b88]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fadd dword [ecx + 0x520]
mov ecx, dword [eax + 0x1034]
test ecx, ecx
fild dword [eax + 0x1034]
jge 0x82e27
fadd dword [0x218ed8]
fsubp st(1)
fstp dword [eax + 0x1010]
mov edx, dword [esi + 0x3134]
fild dword [esp + 0xc]
mov eax, dword [esi + 0x3b88]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fadd dword [edx + 0x524]
mov edx, dword [0x3c698c]
fstp dword [eax + 0x1014]
mov ecx, dword [esi + 0x3134]
fild dword [ecx + 0x80]
lea eax, [ebp + edx*2]
mov ecx, ebx
fstp dword [esp + 0xc]
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
jge 0x82e86
fadd dword [0x218ed8]
mov eax, dword [0x2f5b24]
imul eax, eax, 0x2c
fdiv dword [eax + 0x28bdac]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 5
jp 0x82f52
mov ecx, dword [0x3c698c]
lea eax, [ebp + ecx*2]
mov ecx, ebx
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
jge 0x82ec6
fadd dword [0x218ed8]
mov edx, dword [0x2f5b24]
imul edx, edx, 0x2c
fdiv dword [edx + 0x28bdac]
jmp 0x82f56
test edx, edx
mov edx, edi
jne 0x82ee1
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x18]
mov edi, dword [ecx + 0xa0]
sub edx, ebp
imul edx, edi
mov edi, dword [ecx + 0x7c]
sub edi, edx
mov edx, dword [esi + 0x6b30]
lea edi, [edi + edx + 0x1e0]
mov edx, dword [esp + 0x50]
test edx, edx
mov dword [esp + 0xc], edi
je 0x82da4
mov edx, dword [ecx + 0x6c]
neg edx
lea edi, [edi + edx*2]
jmp 0x82da0
mov edi, dword [ecx + 0xa0]
imul edi, dword [esp + 0x18]
add edi, dword [ecx + 0x7c]
add edi, dword [esi + 0x6b30]
mov edx, dword [esp + 0x50]
test edx, edx
mov dword [esp + 0xc], edi
je 0x82da8
mov edx, dword [ecx + 0x6c]
lea edi, [edi + edx*2]
mov dword [esp + 0xc], edi
jmp 0x82da8
fld dword [esp + 0xc]
mov eax, dword [esi + 0x3134]
fadd dword [eax + 0x558]
mov ecx, dword [esi + 0x3b88]
fadd dword [esp + 0x10]
fstp dword [ecx + 0x10f0]
mov edx, dword [esi + 0x3134]
fld dword [esp + 0x28]
mov eax, dword [esi + 0x3b88]
fadd dword [edx + 0x55c]
fstp dword [eax + 0x10f4]
mov eax, dword [esi + 0x3134]
mov ecx, dword [eax + 0x9c]
mov edx, dword [eax + 0x80]
push ecx
mov ecx, dword [eax + 0x98]
mov eax, dword [eax + 0x8c]
push edx
mov edx, dword [0x3c698c]
push 0
push 1
push ecx
lea ecx, [ebp + edx*2]
mov edx, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x28]
push edx
push ecx
jmp 0x8300c
mov eax, dword [esp + 0x1c]
test eax, eax
mov eax, dword [0x28e9e4]
je 0x82fdd
mov eax, dword [ecx + 0x88]
mov edx, dword [ecx + 0x9c]
fild dword [esp + 0x10]
push edx
mov edx, dword [ecx + 0x80]
mov ecx, dword [ecx + 0x98]
fstp dword [esp + 0x14]
fild dword [esp + 0x10]
push edx
mov edx, dword [esp + 0x18]
push 0
push 0
push ecx
push ebp
push ecx
fstp dword [esp]
push edx
mov ecx, ebx
call fcn.0006b300
mov al, byte [0x28bcd4]
test al, al
je 0x832b4
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x8303c
mov eax, dword [esp + 0x58]
test eax, eax
je 0x8303c
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x832b4
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x1c], eax
jne 0x8317a
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x8305f
mov ecx, dword [esp + 0x4c]
dec ecx
cmp eax, ecx
jge 0x8317a
mov eax, dword [esi + 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 [0x3c6988]
push 0
push 0
push edx
lea edx, [edi + ecx*2 - 6]
mov dword [esp + 0x3c], edx
fild dword [esp + 0x3c]
push 0x217108
sub esp, 8
mov ecx, ebx
fstp dword [esp + 4]
fild dword [esp + 0x50]
fsubr dword [esp + 0x30]
fstp dword [esp]
call fcn.0006b300
mov eax, dword [esi + 0x3134]
fild dword [eax + 0x80]
mov eax, ebp
mov ecx, ebx
fstp dword [esp + 0xc]
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
jge 0x830df
fadd dword [0x218ed8]
mov ecx, dword [0x2f5b24]
imul ecx, ecx, 0x2c
fdiv dword [ecx + 0x28bdac]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 5
jp 0x83125
mov eax, ebp
mov ecx, ebx
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
jge 0x83114
fadd dword [0x218ed8]
mov edx, dword [0x2f5b24]
imul edx, edx, 0x2c
fdiv dword [edx + 0x28bdac]
jmp 0x83129
fld dword [esp + 0xc]
mov eax, dword [esi + 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 [0x3c6988]
push 0
push 0
push ecx
lea ecx, [edi + edx*2 - 6]
mov dword [esp + 0x3c], ecx
fild dword [esp + 0x3c]
push 0x217108
sub esp, 8
mov ecx, ebx
fstp dword [esp + 4]
fadd dword [esp + 0x30]
fstp dword [esp]
call fcn.0006b300
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x1c], eax
jne 0x832b4
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x83199
cmp eax, 1
jle 0x832b4
mov eax, dword [esi + 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 [0x3c6988]
push 0
push 0
push edx
lea edx, [edi + ecx*2 - 6]
mov dword [esp + 0x3c], edx
fild dword [esp + 0x3c]
push 0x217104
sub esp, 8
mov ecx, ebx
fstp dword [esp + 4]
fild dword [esp + 0x50]
fsubr dword [esp + 0x30]
fstp dword [esp]
call fcn.0006b300
mov eax, dword [esi + 0x3134]
fild dword [eax + 0x80]
mov eax, ebp
mov ecx, ebx
fstp dword [esp + 0xc]
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
jge 0x83219
fadd dword [0x218ed8]
mov ecx, dword [0x2f5b24]
imul ecx, ecx, 0x2c
fdiv dword [ecx + 0x28bdac]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 5
jp 0x8325f
mov eax, ebp
mov ecx, ebx
call fcn.0006b2a0
test eax, eax
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
jge 0x8324e
fadd dword [0x218ed8]
mov edx, dword [0x2f5b24]
imul edx, edx, 0x2c
fdiv dword [edx + 0x28bdac]
jmp 0x83263
fld dword [esp + 0xc]
mov eax, dword [esi + 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 [0x3c6988]
push 0
push 0
push ecx
lea ecx, [edi + edx*2 - 6]
mov dword [esp + 0x3c], ecx
fild dword [esp + 0x3c]
push 0x217104
sub esp, 8
mov ecx, ebx
fstp dword [esp + 4]
fadd dword [esp + 0x30]
fstp dword [esp]
call fcn.0006b300
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x4c]
inc eax
cmp eax, edx
mov dword [esp + 0x1c], eax
jl 0x82c00
mov edx, dword [esp + 0x2c]
pop edi
pop ebp
mov dword [esi + 0x3134], edx
pop ebx
add esp, 0x30
ret 0x1c
mov eax, dword [esp + 0x2c]
pop edi
pop ebp
mov dword [esi + 0x3134], eax
pop ebx
add esp, 0x30
ret 0x1c
mov ecx, dword [esp + 0x2c]
pop edi
pop ebp
mov dword [esi + 0x3134], ecx
pop ebx
add esp, 0x30
ret 0x1c