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

Disassembly:
sub esp, 0x7c
mov eax, dword [esp + 0x80]
push ebx
mov ebx, dword [eax + 4]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax]
mov dl, byte [ecx + 0x2c]
test dl, dl
push ebp
mov ebp, dword [eax + 8]
setne byte [esp + 0xb]
push esi
mov edx, ebp
sar edx, 0x1f
push edi
mov edi, dword [eax + 0x18]
mov eax, edx
xor eax, ebp
sub eax, edx
mov esi, edi
sar esi, 0x1f
mov edx, esi
xor edx, edi
sub edx, esi
cmp edx, eax
mov dword [esp + 0x34], edx
jg 0x47e24c
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x1c]
mov eax, edx
sar eax, 0x1f
mov esi, eax
xor esi, edx
mov dword [esp + 0x58], edx
sub esi, eax
mov edx, ecx
sar edx, 0x1f
mov eax, edx
xor eax, ecx
sub eax, edx
cmp eax, esi
jg 0x47e279
mov eax, esi
cmp eax, 0x10000
jg 0x47e28e
cmp dword [esp + 0x34], 0x10000
jle 0x47e821
mov edx, dword [esp + 0x90]
mov edx, dword [edx + 8]
mov esi, edx
sar esi, 0x1f
mov dword [esp + 0x80], edx
mov dword [esp + 0x5c], esi
xor esi, edx
mov edx, dword [esp + 0x5c]
mov eax, edi
sar eax, 0x1f
sub esi, edx
mov edx, eax
xor edx, edi
sub edx, eax
cmp esi, edx
jg 0x47e2ca
mov eax, edi
sar eax, 0x1f
mov edx, eax
xor edx, edi
jmp 0x47e2d3
mov eax, ebp
sar eax, 0x1f
mov edx, eax
xor edx, ebp
mov edi, dword [esp + 0x58]
mov esi, ecx
sar esi, 0x1f
sub edx, eax
mov ebp, esi
mov eax, edi
sar eax, 0x1f
xor ebp, ecx
sub ebp, esi
mov esi, eax
xor esi, edi
sub esi, eax
cmp ebp, esi
mov dword [esp + 0x3c], edx
jg 0x47e302
mov eax, edi
sar eax, 0x1f
mov esi, eax
xor esi, edi
jmp 0x47e30b
mov eax, ecx
sar eax, 0x1f
mov esi, eax
xor esi, ecx
mov ecx, dword [ebx + 0x18]
sub esi, eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 0x4c]
movzx eax, word [ecx]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x98]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x38], esi
je 0x47e821
mov dword [esp + 0x5c], eax
jmp 0x47e353
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
xor ebx, ebx
mov ecx, dword [esp + 0x94]
mov eax, dword [ecx]
mov edi, eax
sar edi, 0x10
add edx, eax
mov dword [esp + 0x34], edi
mov edi, edx
sar edi, 0x10
mov dword [esp + 0x30], edi
sar eax, 8
or edi, 0xffffffff
sub edi, eax
mov eax, dword [ecx + 4]
and edi, 0xff
movzx edx, dh
mov dword [esp + 0x6c], edi
mov edi, eax
or ecx, 0xffffffff
mov dword [esp + 0x70], edx
lea edx, [eax + esi]
sar eax, 8
sub ecx, eax
and ecx, 0xff
sar edi, 0x10
mov esi, edx
sar esi, 0x10
movzx eax, dh
mov dword [esp + 0x74], ecx
xor ecx, ecx
cmp edi, esi
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x78], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x18], edi
jg 0x47e6cc
lea esp, [esp]
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
jg 0x47e602
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x90]
and eax, 1
mov dword [esp + 0x64], eax
mov eax, dword [edx + 4]
mov ebx, dword [eax + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [eax + 0x14]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x2c], eax
lea esp, [esp]
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
xor esi, esi
xor bp, bp
test edi, edi
mov dword [esp + 0x86], esi
mov edi, edx
je 0x47e462
test edi, edi
jge 0x47e444
xor edx, edx
mov edi, dword [esp + 0x18]
test edi, edi
jge 0x47e44e
xor eax, eax
cmp edx, ebx
jl 0x47e455
lea edx, [ebx - 1]
mov edi, dword [esp + 0x2c]
cmp eax, edi
jl 0x47e496
lea eax, [edi - 1]
jmp 0x47e496
test edi, edi
jge 0x47e46a
add edx, ebx
js 0x47e466
cmp edx, ebx
jl 0x47e476
mov edi, edi
sub edx, ebx
cmp edx, ebx
jge 0x47e470
mov edi, dword [esp + 0x18]
test edi, edi
mov edi, dword [esp + 0x2c]
jge 0x47e486
add eax, edi
js 0x47e482
cmp eax, edi
jl 0x47e496
lea ebx, [ebx]
sub eax, edi
cmp eax, edi
jge 0x47e490
imul eax, dword [esp + 0x4c]
add eax, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
sub edi, 3
je 0x47e50a
dec edi
je 0x47e4d5
dec edi
jne 0x47e53b
mov eax, dword [eax + edx*4]
mov edx, eax
shr edx, 0x10
movzx di, dl
mov esi, eax
mov edx, eax
shr esi, 0x18
shr edx, 8
movzx dx, dl
movzx bp, al
jmp 0x47e54b
movzx eax, word [eax + edx*2]
mov ecx, eax
mov edx, eax
shr edx, 5
shr ecx, 0xa
and ecx, 0x1f
mov di, word [ecx*4 + 0x68f3e8]
and edx, 0x1f
mov dx, word [edx*4 + 0x68f3e8]
and eax, 0x1f
mov bp, word [eax*4 + 0x68f3e8]
mov si, 0xff
jmp 0x47e55c
mov esi, dword [esp + 0x68]
mov esi, dword [esi + 8]
test esi, esi
je 0x47e51a
add esi, 4
jmp 0x47e51c
xor esi, esi
movzx eax, byte [eax + edx]
movzx di, byte [esi + eax*4 + 2]
movzx dx, byte [esi + eax*4 + 1]
movzx bp, byte [esi + eax*4]
lea eax, [esi + eax*4]
movzx si, byte [eax + 3]
jmp 0x47e54b
mov dx, word [esp + 0x86]
mov di, word [esp + 0x88]
test si, si
jne 0x47e55c
mov al, byte [esp + 0x13]
test al, al
je 0x47e5ed
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x34]
jne 0x47e56c
mov eax, dword [esp + 0x6c]
jmp 0x47e57b
cmp eax, dword [esp + 0x30]
mov eax, dword [esp + 0x70]
je 0x47e57b
mov eax, 0x100
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x48]
jne 0x47e58c
imul eax, dword [esp + 0x74]
jmp 0x47e59c
cmp ecx, dword [esp + 0x44]
jne 0x47e599
imul eax, dword [esp + 0x78]
jmp 0x47e59c
shl eax, 8
mov ebx, dword [esp + 0x24]
movzx ecx, di
mov edi, dword [esp + 0x20]
sar eax, 8
imul ecx, eax
movzx edx, dx
imul edx, eax
add edi, ecx
add ebx, edx
movzx ecx, bp
movzx edx, si
imul ecx, eax
mov esi, dword [esp + 0x1c]
imul edx, eax
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x28]
add edi, ecx
mov ecx, dword [esp + 0x40]
add esi, edx
add ecx, eax
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
inc eax
cmp eax, edx
mov dword [esp + 0x14], eax
jle 0x47e420
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
inc eax
cmp eax, edx
mov dword [esp + 0x18], eax
jle 0x47e3e0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x47e6a7
mov esi, dword [esp + 0x9c]
xor edx, edx
cmp ecx, 0x10000
jae 0x47e675
mov eax, 0x1000000
div ecx
mov ecx, eax
imul ecx, dword [esp + 0x20]
shr ecx, 0x18
mov word [esi + 4], cx
mov edx, eax
imul edx, dword [esp + 0x24]
mov ecx, eax
imul eax, dword [esp + 0x1c]
imul ecx, dword [esp + 0x28]
shr edx, 0x18
shr ecx, 0x18
shr eax, 0x18
mov word [esi + 2], dx
mov word [esi], cx
mov word [esi + 6], ax
jmp 0x47e7e8
mov eax, dword [esp + 0x20]
div ecx
xor edx, edx
mov word [esi + 4], ax
mov eax, dword [esp + 0x24]
div ecx
xor edx, edx
mov word [esi + 2], ax
mov eax, dword [esp + 0x28]
div ecx
xor edx, edx
mov word [esi], ax
mov eax, dword [esp + 0x1c]
div ecx
mov word [esi + 6], ax
jmp 0x47e7e8
test ecx, ecx
je 0x47e6cc
mov al, byte [esp + 0x13]
test al, al
je 0x47e6cc
mov esi, dword [esp + 0x9c]
mov dword [esi], 0
mov dword [esi + 4], 0
jmp 0x47e7e8
mov edx, dword [esp + 0x34]
test edx, edx
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x90]
jge 0x47e6e3
xor edx, edx
jmp 0x47e6f0
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + 0x10]
cmp edx, ecx
jl 0x47e6f0
lea edx, [ecx - 1]
test eax, eax
jge 0x47e6f8
xor eax, eax
jmp 0x47e705
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + 0x14]
cmp eax, ecx
jl 0x47e705
lea eax, [ecx - 1]
imul eax, dword [esp + 0x4c]
add eax, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
sub esi, 3
je 0x47e7a7
dec esi
je 0x47e75e
dec esi
mov esi, dword [esp + 0x9c]
jne 0x47e7e8
mov eax, dword [eax + edx*4]
mov edx, eax
shr edx, 0x18
mov ecx, eax
shr ecx, 0x10
mov word [esi + 6], dx
movzx dx, cl
mov ecx, eax
shr ecx, 8
mov word [esi + 4], dx
movzx dx, cl
movzx ax, al
mov word [esi + 2], dx
mov word [esi], ax
jmp 0x47e7e8
movzx eax, word [eax + edx*2]
mov esi, dword [esp + 0x9c]
mov ecx, eax
shr ecx, 0xa
and ecx, 0x1f
mov word [esi + 6], 0xff
mov dx, word [ecx*4 + 0x68f3e8]
mov ecx, eax
shr ecx, 5
and ecx, 0x1f
mov word [esi + 4], dx
mov dx, word [ecx*4 + 0x68f3e8]
and eax, 0x1f
mov word [esi + 2], dx
mov ax, word [eax*4 + 0x68f3e8]
mov word [esi], ax
jmp 0x47e7e8
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x47e7b6
add ecx, 4
jmp 0x47e7b8
xor ecx, ecx
movzx edx, byte [eax + edx]
mov esi, dword [esp + 0x9c]
lea eax, [ecx + edx*4]
movzx cx, byte [eax + 3]
mov word [esi + 6], cx
movzx dx, byte [eax + 2]
mov word [esi + 4], dx
movzx cx, byte [eax + 1]
mov word [esi + 2], cx
movzx dx, byte [eax]
mov word [esi], dx
mov eax, dword [esp + 0x94]
mov edx, dword [eax]
mov ecx, dword [esp + 0x80]
add edx, ecx
mov ecx, dword [eax + 4]
mov dword [eax], edx
mov edx, dword [esp + 0x58]
add ecx, edx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x5c]
add esi, 8
dec eax
mov dword [esp + 0x9c], esi
mov dword [esp + 0x5c], eax
jne 0x47e349
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret