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

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
push edi
mov edi, ecx
push 0x40000
mov dword [esp + 0x14], edi
lea ecx, [edi + 0x48]
call fcn.0040d29c
test al, al
jne 0x47e88d
pop edi
pop esi
pop ebp
mov eax, 0x8007000e
pop ebx
add esp, 0x44
ret 0x14
lea esi, [edi + 0x18]
push 0x4000
mov ecx, esi
call fcn.004108a5
test al, al
jne 0x47e8af
pop edi
pop esi
pop ebp
mov eax, 0x8007000e
pop ebx
add esp, 0x44
ret 0x14
mov ebp, dword [esp + 0x64]
test ebp, ebp
jne 0x47e8c6
pop edi
pop esi
pop ebp
mov eax, 0x80070057
pop ebx
add esp, 0x44
ret 0x14
mov eax, dword [esp + 0x5c]
xor ebx, ebx
push ebx
mov ecx, esi
mov dword [edi + 0x2c], eax
call fcn.00481110
mov ecx, dword [esp + 0x58]
lea esi, [edi + 0x40]
mov dword [edi + 0x54], ecx
lea ecx, [esi + 8]
call fcn.0040d2eb
mov dword [esi], 0x20
mov dword [esi + 4], ebx
mov dword [esi + 0x30], ebx
mov al, byte [edi + 0x14]
mov dl, al
mov ecx, 0
and edx, 2
or edx, 0xc
shr al, 2
shr edx, 1
and al, 1
mov ebx, edx
setne cl
add ecx, 2
mov dword [esp + 0x24], ebx
test al, al
mov byte [esp + 0x5c], al
mov dword [esp + 0x28], ecx
je 0x47e93c
lea edx, [edi + 0x78]
push 0x100
push edx
mov ecx, edi
call fcn.0047e730
test al, al
je 0x47ee5a
lea eax, [edi + 0x200]
push 0x40
push eax
mov ecx, edi
call fcn.0047e730
test al, al
je 0x47ee5a
lea eax, [edi + 0x388]
push 0x40
push eax
mov ecx, edi
call fcn.0047e730
test al, al
je 0x47ee5a
mov eax, dword [ebp]
mov ebp, dword [ebp + 4]
xor ecx, ecx
xor edx, edx
test ebp, ebp
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ecx
mov byte [esp + 0x64], cl
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebp
jb 0x47eddb
ja 0x47e9a4
test eax, eax
jbe 0x47eddb
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x68]
mov eax, edx
sub eax, ebp
mov ebp, ecx
sbb ebp, dword [esp + 0x48]
mov dword [esp + 0x30], ebp
jne 0x47e9c3
cmp eax, 0x40000
jb 0x47ea1c
test edi, edi
je 0x47ea1c
mov eax, dword [esi + 0x10]
mov ebp, dword [esi]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x20
sub eax, ebp
mov dword [esp + 0x44], edx
shr eax, 3
xor edx, edx
xor ebp, ebp
sub ecx, eax
mov eax, dword [esi + 0x28]
sbb edx, ebp
add ecx, eax
mov eax, dword [esi + 0x18]
adc edx, ebp
mov ebp, dword [esi + 0x1c]
add ecx, eax
lea eax, [esp + 0x4c]
adc edx, ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi]
mov dword [esp + 0x50], edx
lea edx, [esp + 0x34]
push edx
push eax
push edi
call dword [ecx + 0xc]
test eax, eax
jne 0x47ee5f
cmp dword [esi], 8
jb 0x47ea7e
lea edi, [esi + 8]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x47ea3a
mov ecx, edi
call fcn.0040d396
mov byte [esp + 0x14], al
jmp 0x47ea43
mov cl, byte [eax]
inc eax
mov byte [esp + 0x14], cl
mov dword [edi], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esi]
and eax, 0xff
mov ecx, 0x20
sub ecx, edx
mov ebp, eax
shl ebp, cl
mov ecx, dword [esi + 0x30]
or ecx, ebp
mov dword [esi + 0x30], ecx
xor ecx, ecx
mov cl, byte [eax + 0x4c89ec]
mov eax, dword [esi + 4]
shl eax, 8
or ecx, eax
lea eax, [edx - 8]
cmp eax, 8
mov dword [esi + 4], ecx
mov dword [esi], eax
jae 0x47ea24
mov eax, dword [esi + 0x30]
mov edi, dword [esi]
mov ecx, eax
and ecx, 1
inc edi
shr eax, 1
test ecx, ecx
mov dword [esi], edi
mov dword [esi + 0x30], eax
je 0x47eb65
mov al, byte [esp + 0x5c]
test al, al
je 0x47eaaf
mov ecx, dword [esp + 0x10]
push esi
add ecx, 0x78
call fcn.0047e4a0
jmp 0x47eb2b
cmp dword [esi], 8
jb 0x47eb11
lea edi, [esi + 8]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x47eacd
mov ecx, edi
call fcn.0040d396
mov byte [esp + 0x18], al
jmp 0x47ead6
mov dl, byte [eax]
inc eax
mov byte [esp + 0x18], dl
mov dword [edi], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esi]
and eax, 0xff
mov ecx, 0x20
sub ecx, edx
mov ebp, eax
shl ebp, cl
mov ecx, dword [esi + 0x30]
or ecx, ebp
mov dword [esi + 0x30], ecx
xor ecx, ecx
mov cl, byte [eax + 0x4c89ec]
mov eax, dword [esi + 4]
shl eax, 8
or ecx, eax
lea eax, [edx - 8]
cmp eax, 8
mov dword [esi + 4], ecx
mov dword [esi], eax
jae 0x47eab7
mov eax, dword [esi + 0x30]
mov edi, dword [esi]
mov ecx, eax
add edi, 8
and ecx, 0xff
mov dword [esi], edi
shr eax, 8
mov dword [esi + 0x30], eax
mov al, cl
mov ecx, dword [esp + 0x10]
add ecx, 0x18
mov edx, dword [ecx + 4]
mov edi, dword [ecx]
mov byte [edi + edx], al
mov eax, dword [ecx + 8]
inc edx
cmp edx, eax
mov dword [ecx + 4], edx
jne 0x47eb4a
call fcn.004109dd
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
add edx, 1
adc ecx, 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
jmp 0x47edc1
cmp dword [esi], 8
jb 0x47ebc7
lea edi, [esi + 8]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x47eb83
mov ecx, edi
call fcn.0040d396
mov byte [esp + 0x1c], al
jmp 0x47eb8c
mov dl, byte [eax]
inc eax
mov byte [esp + 0x1c], dl
mov dword [edi], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esi]
and eax, 0xff
mov ecx, 0x20
sub ecx, edx
mov ebp, eax
shl ebp, cl
mov ecx, dword [esi + 0x30]
or ecx, ebp
mov dword [esi + 0x30], ecx
xor ecx, ecx
mov cl, byte [eax + 0x4c89ec]
mov eax, dword [esi + 4]
shl eax, 8
or ecx, eax
lea eax, [edx - 8]
cmp eax, 8
mov dword [esi + 4], ecx
mov dword [esi], eax
jae 0x47eb6d
mov ebp, dword [esi]
mov eax, dword [esi + 0x30]
mov edi, 1
mov ecx, ebx
shl edi, cl
add ebp, ebx
push esi
mov dword [esi], ebp
mov ebp, dword [esp + 0x14]
dec edi
and edi, eax
shr eax, cl
lea ecx, [ebp + 0x388]
mov dword [esi + 0x30], eax
call fcn.0047e4a0
mov ecx, ebx
push esi
shl eax, cl
lea ecx, [ebp + 0x200]
add eax, edi
mov dword [esp + 0x5c], eax
call fcn.0047e4a0
mov ebp, eax
cmp ebp, 0x3f
jne 0x47ec8b
cmp dword [esi], 8
jb 0x47ec70
lea edi, [esi + 8]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x47ec2c
mov ecx, edi
call fcn.0040d396
mov byte [esp + 0x20], al
jmp 0x47ec35
mov cl, byte [eax]
inc eax
mov byte [esp + 0x20], cl
mov dword [edi], eax
mov eax, dword [esp + 0x20]
mov edx, dword [esi]
and eax, 0xff
mov ecx, 0x20
sub ecx, edx
mov ebx, eax
shl ebx, cl
mov ecx, dword [esi + 0x30]
or ecx, ebx
mov dword [esi + 0x30], ecx
xor ecx, ecx
mov cl, byte [eax + 0x4c89ec]
mov eax, dword [esi + 4]
shl eax, 8
or ecx, eax
lea eax, [edx - 8]
cmp eax, 8
mov dword [esi + 4], ecx
mov dword [esi], eax
jae 0x47ec16
mov eax, dword [esi + 0x30]
mov edx, dword [esi]
mov ebp, eax
add edx, 8
and ebp, 0xff
mov dword [esi], edx
shr eax, 8
mov dword [esi + 0x30], eax
add ebp, 0x3f
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
add ebp, ecx
mov ecx, dword [esp + 0x38]
sub edi, edx
sbb eax, ecx
xor ebx, ebx
cmp ebx, eax
jb 0x47ecb8
ja 0x47ecb1
cmp ebp, edi
jbe 0x47ecb8
mov byte [esp + 0x64], 1
mov ebp, edi
mov ebx, dword [esp + 0x58]
xor edi, edi
cmp edi, ecx
jb 0x47ed0f
ja 0x47ecc8
cmp ebx, edx
jb 0x47ed0f
mov ecx, dword [esp + 0x10]
add ecx, 0x18
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
mov byte [edx + eax], 0
mov edx, dword [ecx + 8]
inc eax
cmp eax, edx
mov dword [ecx + 4], eax
jne 0x47ece8
call fcn.004109dd
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
add edx, 1
adc ecx, 0
dec ebp
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
je 0x47edbd
cmp edi, ecx
ja 0x47ecc8
jb 0x47ed0f
cmp ebx, edx
jae 0x47ecc8
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], ebp
add eax, 0x18
mov eax, dword [eax + 4]
mov edi, eax
mov dword [esp + 0x2c], eax
sub edi, ebx
dec edi
cmp ebx, eax
jb 0x47ed44
mov eax, dword [esp + 0x10]
add eax, 0x18
cmp byte [eax + 0x24], 0
je 0x47edb0
mov eax, dword [eax + 0x10]
cmp ebx, eax
jae 0x47edb0
add edi, eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x20]
lea ebx, [ecx + 0x18]
sub edx, eax
cmp edx, ebp
jbe 0x47ed77
mov ecx, dword [ebx + 0x10]
sub ecx, edi
cmp ecx, ebp
jbe 0x47ed77
mov ecx, dword [ebx]
add edi, ecx
add ecx, eax
add eax, ebp
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x58]
mov dl, byte [edi]
mov byte [ecx], dl
inc ecx
inc edi
dec eax
jne 0x47ed6c
jmp 0x47eda8
cmp edi, dword [ebx + 0x10]
jne 0x47ed7e
xor edi, edi
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
inc eax
mov dl, byte [ecx + edi]
inc edi
mov byte [ecx + eax - 1], dl
mov ecx, dword [ebx + 8]
cmp eax, ecx
mov dword [ebx + 4], eax
jne 0x47ed9d
mov ecx, ebx
call fcn.004109dd
mov eax, dword [esp + 0x58]
dec eax
mov dword [esp + 0x58], eax
jne 0x47ed77
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
add edx, ebp
adc ecx, 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
mov ebx, dword [esp + 0x24]
cmp ecx, dword [esp + 0x40]
jb 0x47e9a4
ja 0x47edd7
cmp edx, dword [esp + 0x3c]
jb 0x47e9a4
mov edi, dword [esp + 0x10]
lea ecx, [edi + 0x18]
call fcn.004109c1
test eax, eax
jne 0x47ee5f
mov cl, byte [edi + 0x15]
test cl, cl
je 0x47ee42
mov cl, byte [esp + 0x64]
test cl, cl
je 0x47edfb
mov eax, 1
mov edi, dword [esp + 0x60]
test edi, edi
je 0x47ee42
mov ebp, dword [esi]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x10]
mov ebx, 0x20
sub ebx, ebp
sub ecx, edx
shr ebx, 3
xor edx, edx
xor ebp, ebp
sub ecx, ebx
mov ebx, dword [esi + 0x28]
sbb edx, ebp
add ecx, ebx
mov ebx, dword [esi + 0x18]
adc edx, ebp
mov ebp, dword [esi + 0x1c]
mov esi, dword [edi]
add ecx, ebx
adc edx, ebp
cmp esi, ecx
jne 0x47ee3d
mov ecx, dword [edi + 4]
cmp ecx, edx
je 0x47ee42
mov eax, 1
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
cmp edx, ecx
jne 0x47ee5a
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
cmp ecx, edx
je 0x47ee5f
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0x14