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

Disassembly:
sub esp, 0x5c
cmp dword [esp + 0x68], 0xffffffff
push ebx
push ebp
mov ebp, dword [esp + 0x6c]
push esi
push edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], 0
jne 0x47dc86
mov eax, ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x47dc73
sub eax, edx
sar eax, 1
mov dword [esp + 0x78], eax
mov ebx, dword [esp + 0x7c]
mov eax, dword [ebx]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx]
mov edi, dword [ebx + 4]
mov edx, dword [edx + 0x58]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x3c]
push eax
push 1
push 0x5d6828
mov dword [esp + 0x44], edi
call edx
mov eax, dword [esp + 0x40]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x20], eax
mov eax, dword [ebx]
mov dword [esp + 0x28], ecx
sub ecx, eax
cmp dword [esp + 0x78], 0
mov dword [ebx + 8], eax
mov eax, ebp
mov dword [esp + 0x30], ecx
mov esi, ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], 0
jle 0x47df63
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + 0x180], 0
push ebp
setne byte [esp + 0x14]
call dword [sym.imp.USER32.dll_CharNextW]
cmp byte [esp + 0x10], 0
mov edi, eax
je 0x47dd1b
mov eax, ebp
call fcn.0047c5a0
cmp eax, ebp
ja 0x47dd19
mov eax, ebp
call fcn.0047c600
cmp eax, ebp
jbe 0x47dd1b
mov edi, eax
movzx eax, word [ebp]
cmp ax, 0xa
jne 0x47ddb4
test edi, edi
je 0x47ddb4
cmp dword [esp + 0x14], esi
jbe 0x47dd95
mov edx, dword [esp + 0x80]
test edx, 0x400
jne 0x47dd95
mov eax, dword [ebx]
mov ecx, dword [esp + 0x28]
push edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x24]
add ecx, eax
lea edx, [esp + 0x50]
push edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x7c]
sub edx, esi
sub esi, eax
sar edx, 1
push edx
sar esi, 1
push esi
push eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x30]
push eax
mov eax, dword [ecx]
mov edx, dword [eax + 0xfc]
call edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x174]
add ecx, dword [esp + 0x20]
mov edx, dword [ebx]
add dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
mov esi, edi
jmp 0x47df37
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + 0x180], 0
je 0x47dde4
cmp ax, 0x20
jne 0x47dde4
mov edx, dword [esp + 0x34]
cmp edx, dword [ebx]
jne 0x47dde4
mov eax, dword [esp + 0x24]
test eax, eax
je 0x47dddd
cmp word [eax], 0x20
je 0x47dde4
mov esi, edi
jmp 0x47df2f
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx]
mov edx, dword [edx + 0x58]
lea eax, [esp + 0x3c]
push eax
mov eax, edi
sub eax, ebp
sar eax, 1
push eax
push ebp
call edx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
lea edx, [eax + ecx]
mov ecx, dword [esp + 0x28]
cmp edx, ecx
jle 0x47df10
cmp dword [esp + 0x14], esi
jbe 0x47dea8
test dword [esp + 0x80], 0x400
mov edi, dword [esp + 0x38]
jne 0x47de7e
push dword [esp + 0x80]
mov eax, dword [ebx]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x60]
push eax
mov eax, dword [esp + 0x1c]
sub eax, esi
sar eax, 1
push eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x2c]
sub esi, eax
add ecx, edi
sar esi, 1
push esi
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov edx, dword [edx + 0xfc]
push eax
mov eax, dword [esp + 0x84]
push eax
mov dword [esp + 0x78], edi
call edx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x174]
add ecx, dword [esp + 0x20]
add edi, ecx
cmp edi, dword [ebx + 0xc]
jg 0x47df53
mov edx, dword [ebx]
mov esi, ebp
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], edx
jmp 0x47df43
xor eax, eax
mov ebx, ebp
mov dword [esp + 0x3c], eax
cmp ebp, edi
jae 0x47df0c
push ebx
call dword [sym.imp.USER32.dll_CharNextW]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx]
mov edx, dword [edx + 0x58]
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x74]
sub eax, ebx
sar eax, 1
push eax
push ebx
call edx
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
lea ecx, [edx + eax]
cmp ecx, dword [esp + 0x30]
jg 0x47defa
mov ebx, dword [esp + 0x24]
mov eax, ecx
mov dword [esp + 0x3c], eax
cmp ebx, edi
jb 0x47deb4
jmp 0x47df0c
cmp ebx, ebp
jne 0x47df0a
mov edi, dword [esp + 0x24]
mov eax, edx
mov dword [esp + 0x3c], eax
jmp 0x47df0c
mov edi, ebx
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x34]
add ecx, eax
cmp ecx, dword [ebx + 8]
mov dword [esp + 0x34], ecx
jle 0x47df2f
test dword [esp + 0x80], 0x400
je 0x47df2f
mov dword [ebx + 8], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], ebp
mov eax, edi
sub eax, ebp
sar eax, 1
add dword [esp + 0x18], eax
mov ebp, edi
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x78]
jl 0x47dce3
jmp 0x47df57
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x80]
test edx, 0x400
je 0x47df8b
mov edx, dword [esp + 0x20]
lea eax, [edx + edi]
cmp dword [ebx + 0xc], eax
jle 0x47dfcf
pop edi
pop esi
pop ebp
mov dword [ebx + 0xc], eax
pop ebx
add esp, 0x5c
ret 0x14
cmp eax, esi
jbe 0x47dfcf
mov ecx, dword [ebx]
push edx
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x2c]
sub eax, esi
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x60]
push edx
add ecx, edi
sar eax, 1
push eax
mov eax, dword [esp + 0x7c]
sub esi, ebp
sar esi, 1
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x28]
push esi
mov dword [esp + 0x70], edi
mov edi, dword [ecx]
mov edx, dword [edi + 0xfc]
push ebp
push eax
call edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x14