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

Disassembly:
sub esp, 0x9c
push esi
mov esi, ecx
mov dword [esp + 0x18], esi
mov eax, dword [esi + 0x44c]
test eax, eax
je 0x47efeb
mov eax, dword [esp + 0xa4]
cmp eax, 1
jge 0x47e9cc
mov eax, 1
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x14], eax
cmp ecx, 1
mov dword [esp + 0xc], 1
jl 0x47e9e8
mov dword [esp + 0xc], ecx
fild dword [esi + 0x18]
push ebx
mov ebx, dword [esi + 0x444]
imul ebx, eax
fidiv dword [esp + 0x18]
push ebp
push edi
test bl, 3
mov dword [esp + 0x3c], ebx
fild dword [esi + 0x1c]
fidiv dword [esp + 0x18]
fstp dword [esp + 0x28]
je 0x47ea19
inc ebx
test bl, 3
jne 0x47ea0f
mov dword [esp + 0x3c], ebx
fmul dword [0x7033b8]
call fcn.00481488
fld dword [esp + 0x28]
fmul dword [0x7033b8]
mov dword [esp + 0x50], eax
call fcn.00481488
mov edi, ebx
mov dword [esp + 0x58], eax
imul edi, dword [esp + 0x18]
push edi
mov dword [esp + 0x68], edi
call fcn.00482727
mov ebp, eax
mov eax, dword [esi + 0x44c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1c]
xor edx, edx
add esp, 4
cmp eax, edx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], edx
jle 0x47efb9
mov ecx, dword [esp + 0x20]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
jle 0x47ef9e
shl edx, 8
imul edx, dword [esp + 0x58]
sar edx, 8
mov ecx, edx
sar ecx, 8
mov edi, ecx
mov dword [esp + 0x68], ecx
shl edi, 8
sub edx, edi
mov edi, dword [esi + 0x444]
mov dword [esp + 0x60], edx
jmp 0x47eab6
mov ecx, dword [esp + 0x68]
shl eax, 8
imul eax, dword [esp + 0x50]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
add edx, ebx
mov esi, dword [esi + 0x440]
sar eax, 8
mov dword [esp + 0x54], edx
mov edx, eax
sar edx, 8
mov ebx, edx
shl ebx, 8
sub eax, ebx
mov ebx, edi
mov dword [esp + 0x44], eax
mov eax, esi
imul eax, ecx
imul ebx, edx
add eax, ebx
mov ebx, eax
sub ebx, edi
mov ebp, ebx
sub ebp, esi
cmp ecx, 1
mov dword [esp + 0x6c], ebp
jl 0x47eb07
cmp edx, 1
jge 0x47eb0b
mov dword [esp + 0x6c], eax
mov ebp, eax
sub ebp, esi
cmp ecx, 1
mov dword [esp + 0x70], ebp
jge 0x47eb1c
mov dword [esp + 0x70], eax
mov ebp, edi
sub ebp, esi
add ebp, eax
cmp ecx, 1
mov dword [esp + 0x74], ebp
jl 0x47eb37
mov ebp, dword [esp + 0x24]
mov ebp, dword [ebp + 0x18]
dec ebp
cmp edx, ebp
jl 0x47eb3b
mov dword [esp + 0x74], eax
lea ebp, [edi + edi]
sub ebp, esi
add ebp, eax
cmp ecx, 1
mov dword [esp + 0x78], ebp
jl 0x47eb59
mov ebp, dword [esp + 0x24]
mov ebp, dword [ebp + 0x18]
sub ebp, 2
cmp edx, ebp
jl 0x47eb5d
mov dword [esp + 0x78], eax
cmp edx, 1
mov dword [esp + 0x7c], ebx
jge 0x47eb6a
mov dword [esp + 0x7c], eax
lea ebx, [edi + eax]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x24]
mov ebx, dword [ebx + 0x18]
lea ebp, [ebx - 1]
cmp edx, ebp
mov dword [esp + 0x10], ebp
jl 0x47eb94
mov dword [esp + 0x84], eax
add ebx, 0xfffffffe
lea ebp, [eax + edi*2]
cmp edx, ebx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x14], ebx
jl 0x47ebb0
mov dword [esp + 0x88], eax
mov ebx, esi
sub ebx, edi
add ebx, eax
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x24]
mov ebx, dword [ebx + 0x1c]
mov dword [esp + 0x2c], ebx
dec ebx
cmp ecx, ebx
jge 0x47ebd2
cmp edx, 1
jge 0x47ebd9
mov dword [esp + 0x8c], eax
lea ebp, [esi + eax]
cmp ecx, ebx
mov dword [esp + 0x90], ebp
jl 0x47ebee
mov dword [esp + 0x90], eax
lea ebp, [esi + edi]
mov dword [esp + 0x1c], ebp
add ebp, eax
cmp ecx, ebx
mov dword [esp + 0x94], ebp
jge 0x47ec08
cmp edx, dword [esp + 0x10]
jl 0x47ec0f
mov dword [esp + 0x94], eax
lea ebp, [esi + edi*2]
add ebp, eax
cmp ecx, ebx
mov dword [esp + 0x98], ebp
jge 0x47ec25
cmp edx, dword [esp + 0x14]
jl 0x47ec2c
mov dword [esp + 0x98], eax
add esi, esi
mov ebx, esi
sub ebx, edi
add ebx, eax
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x2c]
add ebx, 0xfffffffe
cmp ecx, ebx
jge 0x47ec4b
cmp edx, 1
jge 0x47ec52
mov dword [esp + 0x9c], eax
lea ebp, [esi + eax]
cmp ecx, ebx
mov dword [esp + 0xa0], ebp
jl 0x47ec67
mov dword [esp + 0xa0], eax
add esi, edi
add esi, eax
cmp ecx, ebx
mov dword [esp + 0xa4], esi
jge 0x47ec7c
cmp edx, dword [esp + 0x10]
jl 0x47ec83
mov dword [esp + 0xa4], eax
mov esi, dword [esp + 0x1c]
cmp ecx, ebx
lea esi, [eax + esi*2]
mov dword [esp + 0xa8], esi
jge 0x47ec9b
cmp edx, dword [esp + 0x14]
jl 0x47eca2
mov dword [esp + 0xa8], eax
xor eax, eax
mov ecx, 0xffffff00
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], ecx
lea ebx, [esp + 0x6c]
mov eax, dword [esp + 0x60]
sub ecx, eax
xor eax, eax
lea edx, [ecx + 0x200]
lea edi, [ecx - 0x100]
test edx, edx
lea esi, [ecx + 0x100]
jle 0x47ece9
mov eax, edx
imul eax, edx
sar eax, 8
imul eax, edx
sar eax, 8
xor edx, edx
test esi, esi
jle 0x47ecfd
mov edx, esi
imul edx, esi
sar edx, 8
imul edx, esi
sar edx, 8
xor esi, esi
test ecx, ecx
jle 0x47ed11
mov esi, ecx
imul esi, ecx
sar esi, 8
imul esi, ecx
sar esi, 8
xor ecx, ecx
test edi, edi
jle 0x47ed25
mov ecx, edi
imul ecx, edi
sar ecx, 8
imul ecx, edi
sar ecx, 8
shl ecx, 0xa
sar ecx, 8
shl edx, 0xa
sub eax, ecx
lea ecx, [esi + esi*2]
sar edx, 8
sub eax, edx
mov ebp, 0xffffff00
shl ecx, 9
shl eax, 8
and cl, 0
add eax, ecx
mov ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x44]
mov ecx, ebp
sub ecx, eax
xor eax, eax
lea edx, [ecx + 0x200]
lea edi, [ecx - 0x100]
test edx, edx
lea esi, [ecx + 0x100]
jle 0x47ed8d
mov eax, edx
imul eax, edx
sar eax, 8
imul eax, edx
sar eax, 8
xor edx, edx
test esi, esi
jle 0x47eda1
mov edx, esi
imul edx, esi
sar edx, 8
imul edx, esi
sar edx, 8
xor esi, esi
test ecx, ecx
jle 0x47edb5
mov esi, ecx
imul esi, ecx
sar esi, 8
imul esi, ecx
sar esi, 8
xor ecx, ecx
test edi, edi
jle 0x47edc9
mov ecx, edi
imul ecx, edi
sar ecx, 8
imul ecx, edi
sar ecx, 8
shl ecx, 0xa
sar ecx, 8
shl edx, 0xa
sub eax, ecx
lea ecx, [esi + esi*2]
sar edx, 8
sub eax, edx
add ebp, 0x100
shl ecx, 9
shl eax, 8
and cl, 0
add ebx, 4
add eax, ecx
mov ecx, eax
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [ebx - 4]
mov eax, edx
sar eax, 8
mov edx, eax
shr edx, 0x1f
add eax, edx
mov edx, dword [esp + 0x4c]
imul eax, dword [esp + 0x48]
shr ecx, 2
sar eax, 8
mov edi, dword [edx + ecx*4]
lea esi, [edx + ecx*4]
mov ecx, edi
xor edx, edx
shr ecx, 0x10
mov dh, cl
mov ecx, dword [esp + 0x1c]
imul edx, eax
sar edx, 8
add ecx, edx
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, edi
shr ecx, 8
mov dh, cl
mov ecx, dword [esp + 0x14]
imul edx, eax
sar edx, 8
add ecx, edx
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov ch, byte [esi]
mov esi, dword [esp + 0x10]
imul ecx, eax
sar ecx, 8
add esi, ecx
cmp ebp, 0x300
mov dword [esp + 0x10], esi
jl 0x47ed5f
mov ecx, dword [esp + 0x2c]
add ecx, 0x100
cmp ecx, 0x300
mov dword [esp + 0x2c], ecx
jl 0x47ecbd
mov eax, dword [esp + 0x1c]
mov edx, eax
shl edx, 5
add edx, eax
lea eax, [eax + edx*4]
shl eax, 1
mov ecx, eax
and ecx, 0xffff0000
cmp ecx, 0xff0000
jg 0x47eebc
test eax, 0xffff0000
jge 0x47eeb4
xor bl, bl
jmp 0x47eec6
cmp ecx, 0xff0000
jle 0x47eec1
or bl, 0xff
jmp 0x47eec6
mov ebx, eax
sar ebx, 0x10
mov eax, dword [esp + 0x14]
mov ecx, eax
shl ecx, 5
add ecx, eax
lea eax, [eax + ecx*4]
shl eax, 1
mov ecx, eax
and ecx, 0xffff0000
cmp ecx, 0xff0000
jg 0x47eef9
test eax, 0xffff0000
jge 0x47eef1
xor al, al
jmp 0x47ef00
cmp ecx, 0xff0000
jle 0x47eefd
or al, 0xff
jmp 0x47ef00
sar eax, 0x10
mov ecx, dword [esp + 0x10]
mov edx, ecx
shl edx, 5
add edx, ecx
lea ecx, [ecx + edx*4]
shl ecx, 1
mov edx, ecx
and edx, 0xffff0000
cmp edx, 0xff0000
jg 0x47ef37
test ecx, 0xffff0000
jge 0x47ef2f
mov byte [esp + 0x38], 0
jmp 0x47ef45
cmp edx, 0xff0000
jle 0x47ef3e
mov byte [esp + 0x38], 0xff
jmp 0x47ef45
sar ecx, 0x10
mov byte [esp + 0x38], cl
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x5c]
xor ecx, ecx
mov esi, dword [esp + 0x24]
mov ch, bl
mov ebx, dword [esp + 0x34]
mov cl, al
mov eax, dword [esp + 0x54]
shl ecx, 8
and edx, 0xff
shr eax, 2
or ecx, edx
mov dword [ebp + eax*4], ecx
mov edi, dword [esi + 0x444]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
add ebx, edi
inc eax
cmp eax, ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], eax
jl 0x47eab2
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
add eax, ebx
inc edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
cmp edx, eax
mov dword [esp + 0x28], edx
jl 0x47ea75
mov edx, dword [esi + 0x44c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push edx
mov dword [esi + 0x440], ebx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ecx
call fcn.0048263e
add esp, 4
mov dword [esi + 0x448], edi
mov dword [esi + 0x44c], ebp
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x9c
ret 8