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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xac
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov ecx, dword [edx + 0x1b4]
mov dword [ebp - 0x44], ecx
mov eax, dword [eax + 0xa8]
mov ecx, dword [ecx + 0x28]
mov ebx, dword [eax + 0x6c]
test ebx, ebx
je 0x47e73a
mov edi, eax
mov ebx, dword [eax + 0xc0]
mov dword [ebp - 0x48], ebx
cmp ebx, 0
je 0x47e4ad
jl 0x47e7bc
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x78]
or eax, dword [ebx + 0x7c]
je 0x47e07c
mov esi, dword [ebx + 0x28]
or esi, 0x40
mov dword [ebx + 0x28], esi
mov edx, dword [edx + 0x1b4]
mov dword [ebp - 0x44], edx
mov edi, dword [ebx + 0xa8]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], 0
mov esi, dword [eax + 0x28]
mov ecx, esi
shr ecx, 5
and ecx, 0xfffff
test cl, 2
je 0x47e0aa
mov ebx, dword [ebp - 0x44]
xor edx, edx
mov eax, dword [ebx + 0x2c]
add dword [ebp - 0x58], eax
adc dword [ebp - 0x54], edx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x44]
cmp dword [edi + 0xbc], 0
mov eax, dword [eax + 0x6c]
mov edx, dword [edx + 0x30]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
ja 0x47e0e8
cmp dword [edi + 0xb8], 0xfff
ja 0x47e0e8
and ecx, 0xffeff
and esi, 0xfe00001f
shl ecx, 5
or esi, ecx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x28], esi
mov ebx, dword [ebp + 8]
xor edi, edi
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x47e7b0
mov eax, dword [eax + 0xc]
inc edi
test eax, eax
jne 0x47e0f8
lea eax, [edi*4 + 4]
xor edx, edx
push ebx
push ebx
push edx
push eax
call fcn.0043f220
add esp, 0x10
mov esi, eax
test eax, eax
je 0x47e56b
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x64]
xor edx, edx
test eax, eax
je 0x47e13e
nop
lea esi, [esi]
mov dword [esi + edx*4], eax
inc edx
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x47e130
shl edx, 2
mov dword [esi + edx], 0
push 0x47d9b0
push 4
push edi
push esi
call sub.msvcrt.dll_qsort
mov ecx, dword [ebp + 8]
add esp, 0x10
mov dword [ebp - 0xa4], 1
test edi, edi
mov dword [ecx + 0x64], 0
mov dword [ecx + 0x68], 0
je 0x47e1d3
xor ecx, ecx
jmp 0x47e18f
inc ecx
mov dword [edx + 0xa8], 1
cmp ecx, edi
je 0x47e1d3
mov edx, dword [esi + ecx*4]
mov ebx, dword [ebp + 8]
mov dword [edx + 0xc], 0
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x47e4b9
mov dword [edx + 0x10], eax
mov dword [eax + 0xc], edx
mov ebx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
or eax, dword [edx + 0x34]
mov dword [ebx + 0x68], edx
je 0x47e180
mov eax, dword [ebp - 0xa4]
inc ecx
mov dword [edx + 0xa8], eax
inc eax
mov dword [ebp - 0xa4], eax
cmp ecx, edi
jne 0x47e18f
sub esp, 0xc
push esi
call sub.msvcrt.dll_free
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0xa4]
add esp, 0x10
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x1b4]
cmp dword [eax + 0x60], ecx
jbe 0x47e701
mov ebx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x70]
imul ebx, eax
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x30], ebx
add dword [ebp - 0x30], esi
mov edi, dword [ebp - 0x54]
mov dword [ebp - 0x2c], 0
adc dword [ebp - 0x2c], edi
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 0x64]
test ebx, ebx
je 0x47e6c9
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x50], 0
neg eax
mov edx, eax
mov dword [ebp - 0x4c], 0
sar edx, 0x1f
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], edx
jmp 0x47e3ab
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x2c]
mov eax, dword [ebx + 0x5c]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x8c], eax
test dword [ebp - 0x24], 0x100
jne 0x47e48a
mov eax, dword [ebp - 0x48]
mov edx, eax
mov dword [ebp - 0x40], eax
sar edx, 0x1f
mov dword [ebp - 0x3c], edx
mov eax, dword [ebx + 0x30]
mov edx, dword [ebx + 0x34]
add eax, 0xffffffff
mov dword [ebx + 0x70], esi
adc edx, 0xffffffff
add eax, dword [ebp - 0x40]
adc edx, dword [ebp - 0x3c]
mov dword [ebx + 0x74], edi
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
and edi, edx
and esi, eax
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
add edx, esi
mov dword [ebx + 0x30], esi
adc ecx, edi
mov dword [ebx + 0x34], edi
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x60], edx
test ecx, ecx
jne 0x47e4d0
mov cl, byte [ebp - 0x8c]
mov eax, 1
shl eax, cl
mov edx, eax
mov ecx, eax
sar ecx, 0x1f
add edx, 0xffffffff
adc ecx, 0xffffffff
add edx, esi
adc ecx, edi
cmp edi, ecx
jb 0x47e66f
ja 0x47e2f9
cmp esi, edx
jbe 0x47e66f
mov dword [ebp - 0x68], 0xffffffff
mov dword [ebp - 0x64], 0xffffffff
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], edx
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
xor eax, esi
xor edx, edi
or eax, edx
mov edx, dword [ebp - 0x60]
setne al
and eax, 0xff
sub edx, esi
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x30], edx
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x50], eax
sbb ecx, edi
add dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], ecx
mov edi, dword [ebp - 0x64]
adc dword [ebp - 0x2c], edi
mov eax, dword [ebx + 0xac]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 4]
mov eax, dword [eax]
cmp edx, dword [ebx + 0x34]
ja 0x47e367
jb 0x47e360
cmp eax, dword [ebx + 0x30]
jae 0x47e367
mov dword [ebp - 0x50], 1
cld
mov esi, dword [ebx]
mov edi, 0x5bf7c9
mov ecx, 5
repe cmpsb byte [esi], byte es:[edi]
jne 0x47e398
or byte [ebx + 0x18], 1
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
mov dword [ebp - 0x4c], ebx
nop
lea esi, [esi]
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x47e6be
mov esi, dword [ebx + 0xac]
test esi, esi
je 0x47e54a
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x47e575
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x47e3d6
mov eax, dword [ebx + 0x30]
mov edx, dword [ebx + 0x34]
mov dword [ecx + 4], edx
mov dword [ecx], eax
test byte [ebx + 0x15], 1
je 0x47e3a0
mov eax, dword [ebx + 0x30]
mov edx, dword [ebx + 0x34]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x30]
mov dword [ebx + 0x3c], edx
or eax, dword [ebx + 0x34]
je 0x47e3a0
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x28]
shr ecx, 5
and ecx, 0xfffff
mov dword [ebp - 0x24], ecx
and ecx, 2
mov dword [ebp - 0x28], ecx
je 0x47e250
mov edx, dword [ebx + 0x5c]
mov eax, 1
mov dword [ebp - 0x8c], edx
mov cl, byte [ebp - 0x8c]
shl eax, cl
mov edx, eax
mov ecx, eax
sar ecx, 0x1f
add edx, 0xffffffff
adc ecx, 0xffffffff
add edx, dword [ebp - 0x30]
adc ecx, dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ecx
jb 0x47e5fd
ja 0x47e44b
cmp dword [ebp - 0x30], edx
jbe 0x47e5fd
or esi, 0xffffffff
or edi, 0xffffffff
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x34], 0xffffffff
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x47e265
mov eax, esi
mov ecx, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x30]
mov edx, edi
sbb edx, dword [ebp - 0x2c]
add dword [ecx + 0x30], eax
adc dword [ecx + 0x34], edx
test dword [ebp - 0x24], 0x100
je 0x47e272
test byte [ebx + 0x14], 1
jne 0x47e62e
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x38], esi
mov edx, eax
mov dword [ebp - 0x40], eax
sar edx, 0x1f
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x3c], edx
jmp 0x47e280
mov dword [ebp - 0x48], 1
jmp 0x47e059
mov eax, dword [ebp + 8]
mov dword [edx + 0x10], 0
mov dword [eax + 0x64], edx
jmp 0x47e1ad
mov cl, byte [ebp - 0x8c]
mov eax, 1
shl eax, cl
mov edx, eax
mov ecx, eax
sar ecx, 0x1f
add edx, 0xffffffff
adc ecx, 0xffffffff
add edx, dword [ebp - 0x60]
adc ecx, dword [ebp - 0x5c]
cmp dword [ebp - 0x5c], ecx
jb 0x47e5a0
ja 0x47e504
cmp dword [ebp - 0x60], edx
jbe 0x47e5a0
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x30]
xor eax, edx
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x2c]
xor edx, ecx
or eax, edx
mov edx, dword [ebp - 0x2c]
setne al
and eax, 0xff
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x60]
sbb edx, dword [ebp - 0x5c]
add eax, esi
adc edx, edi
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], edx
jmp 0x47e346
push eax
push 0
push 0x30
mov eax, dword [ebp + 8]
push eax
call fcn.00434500
add esp, 0x10
mov esi, eax
mov dword [ebx + 0xac], eax
test eax, eax
jne 0x47e3b9
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
push eax
push 0
push 0x10
mov eax, dword [ebp + 8]
push eax
call fcn.00434500
mov dword [esi + 0x2c], eax
add esp, 0x10
mov eax, dword [ebx + 0xac]
mov ecx, dword [eax + 0x2c]
test ecx, ecx
jne 0x47e3c4
jmp 0x47e56b
dec eax
mov dword [ebp - 0xa0], eax
mov edx, eax
sar edx, 0x1f
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x9c], edx
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x88], eax
adc edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa0]
xor eax, 0xffffffff
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x84], edx
and ecx, eax
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0x30], ecx
xor edx, 0xffffffff
mov ecx, dword [ebp - 0x84]
and ecx, edx
mov dword [ebp - 0x2c], ecx
jmp 0x47e512
dec eax
mov esi, dword [ebp - 0x30]
mov edx, eax
mov edi, dword [ebp - 0x2c]
sar edx, 0x1f
add esi, eax
adc edi, edx
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], edi
xor eax, 0xffffffff
xor edx, 0xffffffff
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x74]
and esi, eax
and edi, edx
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
jmp 0x47e45f
mov eax, dword [ebp - 0x48]
mov edx, eax
mov dword [ebp - 0x40], eax
sar edx, 0x1f
mov eax, dword [ebx + 0x20]
sub eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], edx
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebx + 0x24]
sbb edx, dword [ebp - 0x34]
push edi
mov esi, dword [ebp - 0x40]
push esi
push edx
push eax
call fcn.004e7900
mov esi, eax
add esp, 0x10
add esi, dword [ebp - 0x38]
mov edi, edx
adc edi, dword [ebp - 0x34]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], edi
jmp 0x47e280
dec eax
mov dword [ebp - 0xb0], eax
mov edx, eax
sar edx, 0x1f
mov eax, dword [ebp - 0xb0]
add eax, esi
mov dword [ebp - 0xac], edx
mov dword [ebp - 0x80], eax
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x80]
adc edx, edi
xor eax, 0xffffffff
mov dword [ebp - 0x7c], edx
and ecx, eax
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0x68], ecx
xor edx, 0xffffffff
mov ecx, dword [ebp - 0x7c]
and ecx, edx
mov dword [ebp - 0x64], ecx
jmp 0x47e307
mov eax, dword [ebp - 0x50]
test eax, eax
jne 0x47e762
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x2c]
add ecx, 3
adc ebx, 0
cmp dword [ebp - 0x2c], ebx
jb 0x47e731
ja 0x47e6e1
cmp dword [ebp - 0x30], ecx
jbe 0x47e731
or edx, 0xffffffff
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0xa8]
mov dword [eax + 0x20], edx
mov eax, 1
or byte [ebx + 0x2b], 0x40
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
sub esp, 0xc
push 0x13
call fcn.00430870
add esp, 0xc
mov ecx, dword [ebp - 0xa4]
push ecx
mov edx, dword [ebp + 8]
push edx
push 0x5bf7ae
call dword [0x4ee9a0]
xor eax, eax
add esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, ecx
and eax, 0xfffffffc
mov edx, eax
jmp 0x47e6e4
mov edi, eax
test eax, eax
je 0x47e756
mov esi, dword [eax + 0xc4]
mov ebx, dword [eax + 0xc0]
mov eax, esi
or eax, ebx
jne 0x47e047
mov dword [ebp - 0x48], 0x200
jmp 0x47e059
mov byte [ebp - 0x11], 0
push 0
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00469d90
add esp, 0x10
test eax, eax
jne 0x47e56b
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x11]
push 0
push 1
push eax
call fcn.00469b10
mov ecx, eax
add esp, 0x10
xor ecx, 1
or ecx, edx
jne 0x47e56b
jmp 0x47e6c9
mov eax, 4
xor edx, edx
jmp 0x47e109
sub esp, 0xc
push 0x13
call fcn.00430870
add esp, 0xc
push ebx
mov edi, dword [ebp + 8]
push edi
push 0x5bf78c
call dword [0x4ee9a0]
xor eax, eax
add esp, 0x10
jmp 0x47e56d