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

Disassembly:
push 0xffffffffffffffff
push 0x4a4003
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x94
push ebx
push ebp
mov ebp, ecx
push esi
push edi
lea ecx, [esp + 0x28]
call fcn.0040c6d6
xor esi, esi
mov dword [esp + 0xac], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x94], esi
push 0x40000
lea ecx, [esp + 0x2c]
mov byte [esp + 0xb0], 1
call fcn.0040c6f5
test al, al
je 0x47bea5
push 0x40000
lea ecx, [esp + 0x78]
call fcn.0040e3cd
test al, al
jne 0x47bec1
lea ecx, [esp + 0x74]
call fcn.0040e409
lea ecx, [esp + 0x28]
call fcn.0040c733
mov eax, 0x8007000e
jmp 0x47c400
mov eax, dword [esp + 0xb4]
lea ecx, [esp + 0x28]
mov dword [esp + 0x34], eax
call fcn.0040c744
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x20], 0x20
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0x74]
mov dword [esp + 0x24], esi
call fcn.0040e418
mov ebx, dword [esp + 0xc0]
lea edi, [ebp + 0x20]
mov ecx, 0x1000
mov eax, 0x1000100
rep stosd dword es:[edi], eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x1c], 9
mov dword [esp + 0x14], 0x101
mov dword [esp + 0x68], 0xffffffff
mov byte [esp + 0x13], 0
mov byte [esp + 0x11], 0
mov dword [esp + 0x18], 1
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
xor edx, edx
sub edi, ecx
mov ecx, 0x20
sub ecx, eax
xor eax, eax
shr ecx, 3
sub edi, ecx
lea esi, [ebp + 0x18]
sbb edx, eax
mov eax, dword [esp + 0x48]
xor ecx, ecx
add edi, eax
mov eax, dword [esp + 0x38]
adc edx, ecx
mov ecx, dword [esp + 0x3c]
add edi, eax
adc edx, ecx
mov dword [esi], edi
lea ecx, [esp + 0x74]
mov dword [esi + 4], edx
call fcn.0040e430
mov ecx, eax
mov dword [esp + 0x70], edx
test ebx, ebx
mov dword [esp + 0x6c], ecx
mov byte [esp + 0x12], 0
je 0x47bfc9
cmp edx, dword [ebx + 4]
jb 0x47bfc9
ja 0x47bfad
cmp ecx, dword [ebx]
jb 0x47bfc9
mov al, byte [ebp + 0x10]
test al, al
je 0x47c350
mov al, byte [esp + 0x11]
test al, al
jne 0x47c350
mov byte [esp + 0x12], 1
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x47c04b
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
mov eax, ecx
sub eax, edi
mov edi, edx
sbb edi, ebx
mov dword [esp + 0xa0], edi
jne 0x47c015
cmp eax, 0x100000
jae 0x47c015
mov eax, dword [esi]
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
sub eax, edi
mov edi, dword [esi + 4]
sbb edi, ebx
mov dword [esp + 0xa0], edi
jne 0x47c015
cmp eax, 0x100000
jb 0x47c04b
mov eax, dword [esi + 4]
mov dword [esp + 0x58], edx
mov edx, dword [esi]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x5c], edx
lea edx, [esp + 0x6c]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax]
push edx
push esi
push eax
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
mov dword [esp + 0x18], esi
jne 0x47c379
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
cmp eax, 8
jb 0x47c0a9
cmp edi, dword [esp + 0x2c]
jb 0x47c075
lea ecx, [esp + 0x28]
call fcn.0040c7f2
mov edi, dword [esp + 0x28]
mov byte [esp + 0x64], al
mov eax, dword [esp + 0x20]
jmp 0x47c080
mov cl, byte [edi]
inc edi
mov byte [esp + 0x64], cl
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x24]
mov ecx, 0x20
and edx, 0xff
sub ecx, eax
sub eax, 8
shl edx, cl
mov dword [esp + 0x20], eax
or esi, edx
cmp eax, 8
mov dword [esp + 0x24], esi
jae 0x47c058
mov ecx, dword [esp + 0x1c]
mov edx, 1
shl edx, cl
mov ebx, dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x20], eax
lea esi, [edx - 1]
mov edx, esi
and edx, ebx
shr ebx, cl
mov ecx, dword [esp + 0x48]
cmp ecx, 4
mov dword [esp + 0x24], ebx
ja 0x47c354
mov ebx, 0x20
shl ecx, 3
sub ebx, eax
cmp ebx, ecx
jb 0x47c354
cmp edx, 0x100
jne 0x47c21d
cmp eax, 8
jb 0x47c14c
cmp edi, dword [esp + 0x2c]
jb 0x47c118
lea ecx, [esp + 0x28]
call fcn.0040c7f2
mov edi, dword [esp + 0x28]
mov byte [esp + 0x50], al
mov eax, dword [esp + 0x20]
jmp 0x47c123
mov dl, byte [edi]
inc edi
mov byte [esp + 0x50], dl
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x24]
mov ecx, 0x20
and edx, 0xff
sub ecx, eax
sub eax, 8
shl edx, cl
mov dword [esp + 0x20], eax
or ebx, edx
cmp eax, 8
mov dword [esp + 0x24], ebx
jae 0x47c0fb
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
and esi, edx
add eax, ecx
shr edx, cl
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x48]
cmp edx, 4
ja 0x47c35f
mov ebx, 0x20
shl edx, 3
sub ebx, eax
cmp ebx, edx
jb 0x47c35f
cmp esi, 1
jne 0x47c1a0
cmp ecx, 0xd
jae 0x47c35f
mov ebx, dword [esp + 0xc0]
inc ecx
mov dword [esp + 0x1c], ecx
jmp 0x47bf50
cmp esi, 2
jne 0x47c35f
lea edi, [ebp + 0x6120]
mov ecx, 0x7c0
xor eax, eax
lea edx, [ebp + 0x222]
rep stosd dword es:[edi], eax
mov ecx, edx
mov esi, 0x1eff
xor eax, eax
mov ax, word [ecx]
cmp eax, 0x100
je 0x47c1d9
mov byte [eax + ebp + 0x6020], 1
add ecx, 2
dec esi
jne 0x47c1c5
mov eax, 0x101
mov ecx, edx
mov dl, byte [eax + ebp + 0x6020]
test dl, dl
jne 0x47c1f6
mov word [ecx], 0x100
inc eax
add ecx, 2
cmp eax, 0x2000
jb 0x47c1e6
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x14], 0x101
jmp 0x47bf50
mov al, byte [esp + 0x12]
test al, al
jne 0x47c354
mov edi, dword [esp + 0x14]
xor cl, cl
cmp edi, 0x2000
jae 0x47c27b
mov esi, dword [esp + 0x68]
test esi, esi
jl 0x47c27b
lea eax, [ebp + edi*2 + 0x20]
cmp word [eax], 0x100
je 0x47c258
inc edi
add eax, 2
cmp edi, 0x2000
jb 0x47c243
jmp 0x47c277
cmp edi, 0x2000
mov dword [esp + 0x14], edi
jae 0x47c27b
mov al, byte [esp + 0x13]
mov word [ebp + edi*2 + 0x20], si
mov byte [edi + ebp + 0x4020], al
mov cl, 1
inc edi
mov dword [esp + 0x14], edi
xor esi, esi
cmp edx, 0x100
mov dword [esp + 0x68], edx
mov eax, edx
jb 0x47c2bd
mov dl, byte [eax + ebp + 0x4020]
mov byte [esi + ebp + 0x6020], dl
xor edx, edx
mov dx, word [ebp + eax*2 + 0x20]
inc esi
mov eax, edx
cmp eax, 0x100
je 0x47c35f
cmp esi, 0x2000
jae 0x47c2bd
cmp eax, 0x100
jae 0x47c28b
cmp eax, 0x100
je 0x47c35f
cmp esi, 0x2000
jae 0x47c35f
mov byte [esi + ebp + 0x6020], al
inc esi
test cl, cl
mov byte [esp + 0x13], al
je 0x47c2eb
mov byte [edi + ebp + 0x401f], al
mov ebx, dword [esp + 0xc0]
test ebx, ebx
je 0x47c31a
mov ecx, dword [ebx]
mov edi, dword [esp + 0x6c]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x70]
sub ecx, edi
sbb eax, edx
xor edx, edx
cmp edx, eax
jb 0x47c31a
ja 0x47c313
cmp esi, ecx
jbe 0x47c31a
mov byte [esp + 0x11], 1
mov esi, ecx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov cl, byte [esi + ebp + 0x601f]
dec esi
mov byte [eax + edx], cl
mov ecx, dword [esp + 0x7c]
inc eax
cmp eax, ecx
mov dword [esp + 0x78], eax
jne 0x47c347
lea ecx, [esp + 0x74]
call fcn.0040e505
mov eax, dword [esp + 0x78]
test esi, esi
jne 0x47c31e
jmp 0x47bf48
xor edi, edi
jmp 0x47c36a
mov ebx, dword [esp + 0xc0]
xor edi, edi
jmp 0x47c36a
mov ebx, dword [esp + 0xc0]
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x74]
call fcn.0040e4e9
mov esi, eax
test esi, esi
je 0x47c38f
lea ecx, [esp + 0x74]
call fcn.0040e409
lea ecx, [esp + 0x28]
call fcn.0040c733
mov eax, esi
jmp 0x47c400
test edi, edi
jne 0x47c3ec
mov al, byte [ebp + 0x10]
test al, al
je 0x47c3ec
mov al, byte [esp + 0x11]
test al, al
je 0x47c3a7
mov edi, 1
lea ecx, [esp + 0x74]
call fcn.0040e430
test ebx, ebx
je 0x47c3c6
mov ecx, dword [ebx]
cmp ecx, eax
jne 0x47c3c1
mov eax, dword [ebx + 4]
cmp eax, edx
je 0x47c3c6
mov edi, 1
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x47c3ec
mov edx, dword [ecx]
mov esi, dword [ebp + 0x18]
lea eax, [ebp + 0x18]
cmp edx, esi
jne 0x47c3e7
mov ecx, dword [ecx + 4]
mov edx, dword [eax + 4]
cmp ecx, edx
je 0x47c3ec
mov edi, 1
lea ecx, [esp + 0x74]
call fcn.0040e409
lea ecx, [esp + 0x28]
call fcn.0040c733
mov eax, edi
mov ecx, dword [esp + 0xa4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xa0
ret 0x14