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

Disassembly:
sub esp, 0x5c
push ebx
push ebp
mov ebp, dword [esp + 0x70]
push esi
push edi
xor edi, edi
cmp dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0x18], edi
jne 0x4792b3
mov eax, ebp
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4792a0
sub eax, edx
sar eax, 1
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x80]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx]
mov edx, dword [edx + 0x58]
push eax
push 1
push 0x5f431c
call edx
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx]
mov dword [esp + 0x24], ecx
sub ecx, eax
cmp dword [esp + 0x7c], edi
mov dword [ebx + 8], eax
mov eax, ebp
mov dword [esp + 0x2c], ecx
mov esi, ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edi
jle 0x47958f
mov ecx, dword [esp + 0x70]
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 0x479346
mov eax, ebp
call fcn.00479000
cmp eax, ebp
ja 0x479344
mov eax, ebp
call fcn.00479060
cmp eax, ebp
jbe 0x479346
mov edi, eax
movzx eax, word [ebp]
cmp ax, 0xa
jne 0x4793e5
test edi, edi
je 0x4793e5
cmp dword [esp + 0x14], esi
jbe 0x4793c6
mov edx, dword [esp + 0x84]
test edx, 0x400
jne 0x4793c6
mov eax, dword [ebx]
mov ecx, dword [esp + 0x24]
push edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x20]
add ecx, eax
lea edx, [esp + 0x4c]
push edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x80]
sub edx, esi
sub esi, eax
sar edx, 1
push edx
sar esi, 1
push esi
push eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x84]
push eax
mov eax, dword [ecx]
mov edx, dword [eax + 0xfc]
call edx
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x174]
add ecx, dword [esp + 0x1c]
mov edx, dword [ebx]
add dword [esp + 0x34], ecx
mov dword [esp + 0x30], edx
mov esi, edi
jmp 0x47956d
mov ecx, dword [esp + 0x70]
cmp dword [ecx + 0x180], 0
je 0x479415
cmp ax, 0x20
jne 0x479415
mov edx, dword [esp + 0x30]
cmp edx, dword [ebx]
jne 0x479415
mov eax, dword [esp + 0x20]
test eax, eax
je 0x47940e
cmp word [eax], 0x20
je 0x479415
mov esi, edi
jmp 0x479565
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx]
mov edx, dword [edx + 0x58]
lea eax, [esp + 0x38]
push eax
mov eax, edi
sub eax, ebp
sar eax, 1
push eax
push ebp
call edx
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
lea edx, [eax + ecx]
mov ecx, dword [esp + 0x24]
cmp edx, ecx
jle 0x479546
mov edx, dword [esp + 0x14]
cmp edx, esi
jbe 0x4794db
test dword [esp + 0x84], 0x400
mov edi, dword [esp + 0x70]
jne 0x4794b1
mov eax, dword [ebx]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x34]
add ecx, eax
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x84]
push ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x7c]
sub edx, esi
lea ecx, [esp + 0x5c]
push ecx
sub esi, eax
sar edx, 1
push edx
mov edx, dword [esp + 0x80]
sar esi, 1
push esi
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0xfc]
push edx
mov ecx, edi
call eax
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 0x174]
add ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
add eax, ecx
cmp eax, dword [ebx + 0xc]
jg 0x4795be
mov ecx, dword [ebx]
mov esi, ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
jmp 0x479579
xor eax, eax
mov ebx, ebp
mov dword [esp + 0x38], eax
cmp ebp, edi
jae 0x47953f
push ebx
call dword [sym.imp.USER32.dll_CharNextW]
mov edx, dword [esp + 0x74]
mov edx, dword [edx]
mov edx, dword [edx + 0x58]
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x78]
sub eax, ebx
sar eax, 1
push eax
push ebx
call edx
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
lea ecx, [edx + eax]
cmp ecx, dword [esp + 0x2c]
jg 0x47952d
mov ebx, dword [esp + 0x20]
mov eax, ecx
mov dword [esp + 0x38], eax
cmp ebx, edi
jb 0x4794e7
jmp 0x47953f
cmp ebx, ebp
jne 0x47953d
mov edi, dword [esp + 0x20]
mov eax, edx
mov dword [esp + 0x38], eax
jmp 0x47953f
mov edi, ebx
mov ebx, dword [esp + 0x80]
mov ecx, dword [esp + 0x30]
add ecx, eax
cmp ecx, dword [ebx + 8]
mov dword [esp + 0x30], ecx
jle 0x479565
test dword [esp + 0x84], 0x400
je 0x479565
mov dword [ebx + 8], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], 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 + 0x7c]
jl 0x47930e
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x84]
test edx, 0x400
je 0x4795ca
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
add eax, edx
cmp dword [ebx + 0xc], eax
jle 0x479613
mov dword [ebx + 0xc], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x18
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x14]
mov esi, edx
jmp 0x479593
cmp eax, esi
jbe 0x479613
mov ecx, dword [ebx]
mov ebx, dword [esp + 0x24]
push edx
sub eax, esi
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x20]
lea edx, [esp + 0x5c]
push edx
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x3c]
sar eax, 1
push eax
mov eax, dword [esp + 0x80]
sub esi, ebp
add ebx, ecx
sar esi, 1
push esi
mov dword [esp + 0x74], ebx
mov ebx, dword [edi]
mov edx, dword [ebx + 0xfc]
push ebp
mov dword [esp + 0x70], ecx
push eax
mov ecx, edi
call edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x18