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

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x1068]
cmp eax, 0xffffffff
jne 0x47b040
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret 0xc
cmp eax, 0xfffffffe
jne 0x47b0bc
mov al, byte [esi + 0x1064]
test al, al
jne 0x47b07f
mov al, byte [esi + 0x1063]
lea ecx, [esi + 0x20]
neg al
sbb eax, eax
and eax, 0x8000
add eax, 0x8000
push eax
call fcn.004108cf
test al, al
jne 0x47b07f
pop edi
pop esi
pop ebp
mov eax, 0x8007000e
pop ebx
add esp, 0x28
ret 0xc
mov cl, byte [esi + 0x1066]
push ecx
mov ecx, esi
call fcn.0047afd0
test eax, eax
jne 0x47b90f
mov dl, byte [esi + 0x1064]
lea ecx, [esi + 0x20]
push edx
call fcn.00481210
mov byte [esi + 0x1060], 0
mov dword [esi + 0x1068], 0
mov byte [esi + 0x1067], 1
mov eax, dword [esi + 0x1068]
mov ebx, dword [esp + 0x3c]
test eax, eax
je 0x47b11a
test ebx, ebx
je 0x47b116
mov edx, dword [esi + 0x106c]
dec eax
lea ecx, [esi + 0x20]
mov dword [esi + 0x1068], eax
mov edi, dword [ecx + 4]
mov eax, edi
sub eax, edx
dec eax
cmp edx, edi
jb 0x47b0ed
add eax, dword [ecx + 0x10]
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
mov ebp, edi
inc edx
mov al, byte [edi + eax]
mov byte [edx + ebp - 1], al
mov eax, dword [ecx + 8]
cmp edx, eax
mov dword [ecx + 4], edx
jne 0x47b10b
call fcn.00410a07
mov eax, dword [esi + 0x1068]
dec ebx
test eax, eax
jne 0x47b0ca
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], 0
test eax, eax
mov dword [esp + 0x34], 0
je 0x47b168
mov ebp, dword [esi + 0x48]
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x58]
mov edx, 0x20
sub edx, ebp
sub eax, ecx
shr edx, 3
xor ecx, ecx
xor edi, edi
sub eax, edx
mov edx, dword [esi + 0x70]
sbb ecx, edi
add eax, edx
mov edx, dword [esi + 0x60]
adc ecx, edi
add eax, edx
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x64]
adc ecx, eax
mov dword [esp + 0x34], ecx
test ebx, ebx
jne 0x47b178
mov al, byte [esp + 0x40]
test al, al
je 0x47b8e1
mov eax, dword [esi + 0x70]
cmp eax, 4
ja 0x47b90a
mov edx, dword [esi + 0x48]
mov ecx, 0x20
sub ecx, edx
lea edx, [eax*8]
cmp ecx, edx
jb 0x47b90a
mov al, byte [esi + 0x1067]
test al, al
je 0x47b24a
mov al, byte [esi + 0x1060]
test al, al
jne 0x47b8d7
mov edi, dword [esp + 0x44]
test edi, edi
je 0x47b20f
mov ebp, dword [esi + 0x48]
mov ecx, dword [esi + 0x50]
mov eax, dword [esi + 0x58]
mov edx, 0x20
sub edx, ebp
sub ecx, eax
shr edx, 3
xor eax, eax
xor ebp, ebp
sub ecx, edx
mov edx, dword [esi + 0x70]
sbb eax, ebp
add ecx, edx
mov edx, dword [esi + 0x64]
adc eax, ebp
mov ebp, dword [esi + 0x60]
add ecx, ebp
mov ebp, dword [esp + 0x30]
adc eax, edx
mov edx, dword [esp + 0x34]
sub ecx, ebp
sbb eax, edx
xor edx, edx
cmp eax, edx
ja 0x47b8fe
jb 0x47b20f
cmp ecx, edi
jae 0x47b8fe
mov ecx, esi
call fcn.0047a7c0
test al, al
je 0x47b90a
mov eax, dword [esi + 0x70]
cmp eax, 4
ja 0x47b90a
mov edx, dword [esi + 0x48]
mov ecx, 0x20
sub ecx, edx
lea edx, [eax*8]
cmp ecx, edx
jb 0x47b90a
mov byte [esi + 0x1067], 0
mov al, byte [esi + 0x1061]
test al, al
je 0x47b32e
mov al, byte [esp + 0x40]
test al, al
je 0x47b272
test ebx, ebx
jne 0x47b272
mov eax, dword [esi + 0x1058]
test eax, eax
jne 0x47b90a
mov eax, dword [esi + 0x1058]
mov ebp, eax
cmp ebp, ebx
jbe 0x47b280
mov ebp, ebx
sub eax, ebp
sub ebx, ebp
test ebp, ebp
mov dword [esi + 0x1058], eax
mov dword [esp + 0x3c], ebx
je 0x47b318
cmp dword [esi + 0x48], 0x20
je 0x47b2c4
mov ecx, esi
call fcn.0047a650
mov edx, dword [esi + 0x24]
mov edi, dword [esi + 0x20]
lea ecx, [esi + 0x20]
mov byte [edi + edx], al
inc edx
mov eax, dword [ecx + 8]
mov dword [ecx + 4], edx
cmp edx, eax
jne 0x47b2bf
call fcn.00410a07
dec ebp
jne 0x47b296
jmp 0x47b318
test ebp, ebp
je 0x47b318
lea edi, [esi + 0x20]
mov edx, dword [edi + 4]
mov eax, dword [edi + 8]
mov ecx, dword [edi]
sub eax, edx
add ecx, edx
cmp eax, ebp
jbe 0x47b2dd
mov eax, ebp
push eax
push ecx
lea ecx, [esi + 0x50]
call fcn.0040d3dc
mov ebx, eax
test ebx, ebx
je 0x47b90a
mov ecx, dword [edi + 8]
mov eax, dword [edi + 4]
mov edx, ecx
sub edx, eax
cmp edx, ebx
jbe 0x47b306
add eax, ebx
mov dword [edi + 4], eax
jmp 0x47b310
mov dword [edi + 4], ecx
mov ecx, edi
call fcn.00410a07
sub ebp, ebx
jne 0x47b2cb
mov ebx, dword [esp + 0x3c]
mov eax, dword [esi + 0x1058]
test eax, eax
sete al
mov byte [esi + 0x1067], al
jmp 0x47b168
test ebx, ebx
je 0x47b7b9
mov eax, dword [esi + 0x70]
mov ebx, 8
cmp eax, 4
ja 0x47b90a
cmp dword [esi + 0x48], ebx
jb 0x47b3aa
lea edi, [esi + 0x50]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x47b365
mov ecx, edi
call fcn.0040d3c0
mov byte [esp + 0x1c], al
jmp 0x47b36e
mov cl, byte [eax]
inc eax
mov byte [esp + 0x1c], cl
mov dword [edi], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x48]
and eax, 0xff
mov ecx, 0x20
sub ecx, edx
mov ebp, eax
shl ebp, cl
mov ecx, dword [esi + 0x78]
or ecx, ebp
mov dword [esi + 0x78], ecx
xor ecx, ecx
mov cl, byte [eax + 0x4c89ec]
mov eax, dword [esi + 0x4c]
shl eax, 8
or ecx, eax
lea eax, [edx - 8]
cmp eax, ebx
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
jae 0x47b34f
mov edi, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
mov ecx, ebx
sub ecx, edi
shr eax, cl
mov ecx, dword [esi + 0x80]
shr eax, 9
and eax, 0x7fff
mov edi, eax
shr edi, 5
cmp edi, ecx
jb 0x47b41b
mov edx, dword [esi + 0x84]
lea ecx, [esi + 0x84]
cmp eax, edx
mov edi, 0xb
jb 0x47b3f6
mov edx, dword [ecx + 4]
add ecx, 4
inc edi
cmp eax, edx
jae 0x47b3e2
cmp edi, 0xf
ja 0x47b90a
mov edx, dword [esi + edi*4 + 0x70]
mov ecx, 0xf
sub ecx, edi
shr eax, cl
mov ecx, dword [esi + 0x48]
sub eax, edx
xor edx, edx
add ecx, edi
mov dx, word [esi + eax*2 + 0x4b0]
mov dword [esi + 0x48], ecx
mov ecx, edi
jmp 0x47b431
xor ecx, ecx
xor edx, edx
mov cl, byte [edi + esi + 0xb0]
mov dx, word [esi + edi*2 + 0x4b0]
add dword [esi + 0x48], ecx
mov eax, dword [esi + 0x78]
shr eax, cl
cmp edx, 0x100
mov dword [esi + 0x78], eax
jae 0x47b466
mov eax, dword [esi + 0x24]
mov edi, dword [esi + 0x20]
lea ecx, [esi + 0x20]
mov byte [edi + eax], dl
inc eax
mov edx, dword [ecx + 8]
mov dword [ecx + 4], eax
cmp eax, edx
jne 0x47b45d
call fcn.00410a07
dec dword [esp + 0x3c]
jmp 0x47b78e
je 0x47b79c
mov al, byte [esi + 0x1063]
sub edx, 0x101
test al, al
je 0x47b492
xor ecx, ecx
xor eax, eax
mov cl, byte [edx + 0x4b9088]
mov al, byte [edx + 0x4b90c8]
mov dword [esp + 0x10], ecx
jmp 0x47b4a6
xor ecx, ecx
xor eax, eax
mov cl, byte [edx + 0x4b9068]
mov al, byte [edx + 0x4b90a8]
mov dword [esp + 0x10], ecx
mov edi, eax
mov eax, dword [esi + 0x48]
cmp eax, ebx
jb 0x47b514
lea ebp, [esi + 0x50]
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
cmp eax, ecx
jb 0x47b4c9
mov ecx, ebp
call fcn.0040d3c0
mov byte [esp + 0x20], al
jmp 0x47b4d3
mov cl, byte [eax]
inc eax
mov byte [esp + 0x20], cl
mov dword [ebp], eax
mov eax, dword [esp + 0x20]
mov edx, dword [esi + 0x48]
and eax, 0xff
mov ecx, 0x20
sub ecx, edx
mov ebx, eax
shl ebx, cl
mov ecx, dword [esi + 0x78]
or ecx, ebx
mov ebx, 8
mov dword [esi + 0x78], ecx
xor ecx, ecx
mov cl, byte [eax + 0x4c89ec]
mov eax, dword [esi + 0x4c]
shl eax, 8
or ecx, eax
lea eax, [edx - 8]
cmp eax, ebx
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
jae 0x47b4b2
mov edx, dword [esi + 0x78]
mov eax, 1
mov ecx, edi
mov ebp, dword [esi + 0x48]
shl eax, cl
add ebp, edi
mov dword [esi + 0x48], ebp
dec eax
and eax, edx
shr edx, cl
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x78], edx
lea edx, [ecx + eax + 3]
mov eax, ebp
mov dword [esp + 0x10], edx
cmp eax, ebx
jb 0x47b5a0
lea edi, [esi + 0x50]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x47b55b
mov ecx, edi
call fcn.0040d3c0
mov byte [esp + 0x24], al
jmp 0x47b564
mov cl, byte [eax]
inc eax
mov byte [esp + 0x24], cl
mov dword [edi], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x48]
and eax, 0xff
mov ecx, 0x20
sub ecx, edx
mov ebp, eax
shl ebp, cl
mov ecx, dword [esi + 0x78]
or ecx, ebp
mov dword [esi + 0x78], ecx
xor ecx, ecx
mov cl, byte [eax + 0x4c89ec]
mov eax, dword [esi + 0x4c]
shl eax, 8
or ecx, eax
lea eax, [edx - 8]
cmp eax, ebx
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
jae 0x47b545
mov edi, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
mov ecx, ebx
sub ecx, edi
shr eax, cl
mov ecx, dword [esi + 0xedc]
shr eax, 9
and eax, 0x7fff
mov edx, eax
shr edx, 9
cmp edx, ecx
jb 0x47b615
mov edi, dword [esi + 0xee0]
lea ecx, [esi + 0xee0]
cmp eax, edi
mov edx, 7
jb 0x47b5ec
mov edi, dword [ecx + 4]
add ecx, 4
inc edx
cmp eax, edi
jae 0x47b5d8
cmp edx, 0xf
ja 0x47b90a
mov edi, dword [esi + edx*4 + 0xeec]
mov ecx, 0xf
sub ecx, edx
shr eax, cl
xor ecx, ecx
sub eax, edi
mov cl, byte [eax + esi + 0xf7c]
mov ebp, ecx
mov ecx, dword [esi + 0x48]
add ecx, edx
mov dword [esi + 0x48], ecx
mov ecx, edx
jmp 0x47b631
xor ecx, ecx
xor eax, eax
mov cl, byte [edx + esi + 0xf2c]
mov al, byte [edx + esi + 0xf7c]
mov edx, dword [esi + 0x48]
mov ebp, eax
add edx, ecx
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0x78]
shr eax, cl
xor ecx, ecx
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x48]
mov cl, byte [ebp + 0x4b9168]
cmp eax, ebx
mov edi, ecx
jb 0x47b6a8
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x54]
lea ecx, [esi + 0x50]
cmp eax, edx
jb 0x47b662
call fcn.0040d3c0
mov byte [esp + 0x28], al
jmp 0x47b66b
mov dl, byte [eax]
inc eax
mov byte [esp + 0x28], dl
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esi + 0x48]
and eax, 0xff
mov ecx, 0x20
sub ecx, edx
mov ebx, eax
shl ebx, cl
mov ecx, dword [esi + 0x78]
or ecx, ebx
mov dword [esi + 0x78], ecx
xor ecx, ecx
mov cl, byte [eax + 0x4c89ec]
mov eax, dword [esi + 0x4c]
shl eax, 8
or ecx, eax
lea eax, [edx - 8]
cmp eax, 8
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
jae 0x47b64a
mov edx, dword [esi + 0x78]
mov eax, 1
mov ecx, edi
shl eax, cl
mov ecx, dword [esi + 0x48]
add ecx, edi
mov dword [esi + 0x48], ecx
mov ecx, edi
dec eax
and eax, edx
shr edx, cl
mov ecx, dword [esp + 0x3c]
mov dword [esi + 0x78], edx
mov ebx, dword [ebp*4 + 0x4b90e8]
add ebx, eax
mov eax, dword [esp + 0x10]
cmp eax, ecx
mov dword [esp + 0x18], eax
jbe 0x47b6e3
mov dword [esp + 0x18], ecx
mov eax, dword [esi + 0x24]
lea edi, [esi + 0x20]
mov edx, dword [esp + 0x18]
mov ebp, eax
sub ebp, ebx
mov dword [esp + 0x14], edx
dec ebp
cmp ebx, eax
jb 0x47b712
mov cl, byte [edi + 0x24]
test cl, cl
je 0x47b90a
mov ecx, dword [edi + 0x10]
cmp ebx, ecx
jae 0x47b90a
add ebp, ecx
mov ecx, dword [edi + 8]
sub ecx, eax
cmp ecx, edx
jbe 0x47b743
mov ecx, dword [edi + 0x10]
sub ecx, ebp
cmp ecx, edx
jbe 0x47b743
mov ecx, dword [edi]
add ebp, ecx
add ecx, eax
add eax, edx
mov dword [edi + 4], eax
mov edi, dword [esp + 0x14]
mov al, byte [ebp]
mov byte [ecx], al
inc ecx
inc ebp
dec edi
jne 0x47b733
mov dword [esp + 0x14], edi
jmp 0x47b778
cmp ebp, dword [edi + 0x10]
jne 0x47b74a
xor ebp, ebp
mov ecx, dword [edi]
mov eax, dword [edi + 4]
inc eax
mov dl, byte [ecx + ebp]
inc ebp
mov byte [ecx + eax - 1], dl
mov ecx, dword [edi + 8]
cmp eax, ecx
mov dword [edi + 4], eax
jne 0x47b769
mov ecx, edi
call fcn.00410a07
mov eax, dword [esp + 0x14]
dec eax
mov dword [esp + 0x14], eax
jne 0x47b743
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
sub ecx, edx
sub eax, edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x10], eax
jne 0x47b7a5
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x47b336
jmp 0x47b7b5
mov byte [esi + 0x1067], 1
jmp 0x47b7b5
mov eax, dword [esp + 0x10]
mov dword [esi + 0x106c], ebx
mov dword [esi + 0x1068], eax
mov ebx, dword [esp + 0x3c]
mov al, byte [esp + 0x40]
test al, al
je 0x47b168
test ebx, ebx
jne 0x47b178
cmp dword [esi + 0x48], 8
jb 0x47b832
lea edi, [esi + 0x50]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x47b7ec
mov ecx, edi
call fcn.0040d3c0
mov byte [esp + 0x2c], al
jmp 0x47b7f5
mov cl, byte [eax]
inc eax
mov byte [esp + 0x2c], cl
mov dword [edi], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esi + 0x48]
and eax, 0xff
mov ecx, 0x20
sub ecx, edx
mov ebp, eax
shl ebp, cl
mov ecx, dword [esi + 0x78]
or ecx, ebp
mov dword [esi + 0x78], ecx
xor ecx, ecx
mov cl, byte [eax + 0x4c89ec]
mov eax, dword [esi + 0x4c]
shl eax, 8
or ecx, eax
lea eax, [edx - 8]
cmp eax, 8
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
jae 0x47b7d6
mov ebp, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
mov ecx, 8
sub ecx, ebp
shr eax, cl
mov ecx, dword [esi + 0x80]
shr eax, 9
and eax, 0x7fff
mov edx, eax
shr edx, 5
cmp edx, ecx
jb 0x47b8a3
mov edi, dword [esi + 0x84]
lea ecx, [esi + 0x84]
cmp eax, edi
mov edx, 0xb
jb 0x47b881
mov edi, dword [ecx + 4]
add ecx, 4
inc edx
cmp eax, edi
jae 0x47b86d
cmp edx, 0xf
ja 0x47b90a
mov ecx, 0xf
xor edi, edi
sub ecx, edx
shr eax, cl
mov ecx, dword [esi + edx*4 + 0x70]
sub eax, ecx
add ebp, edx
mov ecx, edx
mov di, word [esi + eax*2 + 0x4b0]
mov dword [esi + 0x48], ebp
jmp 0x47b8bb
xor ecx, ecx
xor edi, edi
mov cl, byte [edx + esi + 0xb0]
mov di, word [esi + edx*2 + 0x4b0]
add ebp, ecx
mov dword [esi + 0x48], ebp
mov eax, dword [esi + 0x78]
shr eax, cl
cmp edi, 0x100
mov dword [esi + 0x78], eax
jne 0x47b90a
mov byte [esi + 0x1067], 1
jmp 0x47b168
mov dword [esi + 0x1068], 0xffffffff
mov eax, dword [esi + 0x70]
cmp eax, 4
ja 0x47b90a
mov edi, dword [esi + 0x48]
mov edx, 0x20
lea ecx, [eax*8]
sub edx, edi
cmp edx, ecx
jb 0x47b90a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret 0xc
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 0xc