Function at 0x47e970
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.0040d2c6
test al, al
jne 0x47e99d
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.004108cf
test al, al
jne 0x47e9bf
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 0x47e9d6
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.00481210
mov ecx, dword [esp + 0x58]
lea esi, [edi + 0x40]
mov dword [edi + 0x54], ecx
lea ecx, [esi + 8]
call fcn.0040d315
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 0x47ea4c
lea edx, [edi + 0x78]
push 0x100
push edx
mov ecx, edi
call fcn.0047e840
test al, al
je 0x47ef6a
lea eax, [edi + 0x200]
push 0x40
push eax
mov ecx, edi
call fcn.0047e840
test al, al
je 0x47ef6a
lea eax, [edi + 0x388]
push 0x40
push eax
mov ecx, edi
call fcn.0047e840
test al, al
je 0x47ef6a
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 0x47eeeb
ja 0x47eab4
test eax, eax
jbe 0x47eeeb
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 0x47ead3
cmp eax, 0x40000
jb 0x47eb2c
test edi, edi
je 0x47eb2c
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 0x47ef6f
cmp dword [esi], 8
jb 0x47eb8e
lea edi, [esi + 8]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x47eb4a
mov ecx, edi
call fcn.0040d3c0
mov byte [esp + 0x14], al
jmp 0x47eb53
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 0x47eb34
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 0x47ec75
mov al, byte [esp + 0x5c]
test al, al
je 0x47ebbf
mov ecx, dword [esp + 0x10]
push esi
add ecx, 0x78
call fcn.0047e5c0
jmp 0x47ec3b
cmp dword [esi], 8
jb 0x47ec21
lea edi, [esi + 8]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x47ebdd
mov ecx, edi
call fcn.0040d3c0
mov byte [esp + 0x18], al
jmp 0x47ebe6
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 0x47ebc7
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 0x47ec5a
call fcn.00410a07
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 0x47eed1
cmp dword [esi], 8
jb 0x47ecd7
lea edi, [esi + 8]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x47ec93
mov ecx, edi
call fcn.0040d3c0
mov byte [esp + 0x1c], al
jmp 0x47ec9c
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 0x47ec7d
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.0047e5c0
mov ecx, ebx
push esi
shl eax, cl
lea ecx, [ebp + 0x200]
add eax, edi
mov dword [esp + 0x5c], eax
call fcn.0047e5c0
mov ebp, eax
cmp ebp, 0x3f
jne 0x47ed9b
cmp dword [esi], 8
jb 0x47ed80
lea edi, [esi + 8]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x47ed3c
mov ecx, edi
call fcn.0040d3c0
mov byte [esp + 0x20], al
jmp 0x47ed45
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 0x47ed26
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 0x47edc8
ja 0x47edc1
cmp ebp, edi
jbe 0x47edc8
mov byte [esp + 0x64], 1
mov ebp, edi
mov ebx, dword [esp + 0x58]
xor edi, edi
cmp edi, ecx
jb 0x47ee1f
ja 0x47edd8
cmp ebx, edx
jb 0x47ee1f
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 0x47edf8
call fcn.00410a07
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 0x47eecd
cmp edi, ecx
ja 0x47edd8
jb 0x47ee1f
cmp ebx, edx
jae 0x47edd8
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 0x47ee54
mov eax, dword [esp + 0x10]
add eax, 0x18
cmp byte [eax + 0x24], 0
je 0x47eec0
mov eax, dword [eax + 0x10]
cmp ebx, eax
jae 0x47eec0
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 0x47ee87
mov ecx, dword [ebx + 0x10]
sub ecx, edi
cmp ecx, ebp
jbe 0x47ee87
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 0x47ee7c
jmp 0x47eeb8
cmp edi, dword [ebx + 0x10]
jne 0x47ee8e
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 0x47eead
mov ecx, ebx
call fcn.00410a07
mov eax, dword [esp + 0x58]
dec eax
mov dword [esp + 0x58], eax
jne 0x47ee87
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 0x47eab4
ja 0x47eee7
cmp edx, dword [esp + 0x3c]
jb 0x47eab4
mov edi, dword [esp + 0x10]
lea ecx, [edi + 0x18]
call fcn.004109eb
test eax, eax
jne 0x47ef6f
mov cl, byte [edi + 0x15]
test cl, cl
je 0x47ef52
mov cl, byte [esp + 0x64]
test cl, cl
je 0x47ef0b
mov eax, 1
mov edi, dword [esp + 0x60]
test edi, edi
je 0x47ef52
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 0x47ef4d
mov ecx, dword [edi + 4]
cmp ecx, edx
je 0x47ef52
mov eax, 1
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
cmp edx, ecx
jne 0x47ef6a
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
cmp ecx, edx
je 0x47ef6f
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0x14