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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, dword [edi + 8]
mov ebx, dword [edi]
xor eax, eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], eax
add esi, 0x28
mov eax, 8
mov ecx, esi
mov dword [ebp - 0x18], ebx
call fcn.00479c50
cmp dword [edi + 0x50], 7
mov dword [edi + 0x14], 0
jne 0x479e2a
mov eax, 1
mov byte [ebx + 0x40], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x58]
mov ebx, dword [edi + 0x20]
and ecx, 3
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ecx
cmp ecx, 1
jne 0x479eb3
mov eax, dword [edi + 8]
add eax, 0x168
test byte [eax + 0x1c], 0x10
mov dword [ebp - 0x14], eax
je 0x479e60
mov ebx, dword [eax + 0x18]
mov eax, dword [eax + 4]
shr ebx, 2
mov dword [ebp - 8], ebx
mov dword [ebp - 4], eax
jmp 0x479e63
mov ebx, dword [ebp - 8]
xor ecx, ecx
xor edx, edx
xor eax, eax
cmp ebx, 2
jl 0x479e8f
mov ebx, dword [ebp - 4]
mov ebx, dword [ebx + eax*4]
add ecx, dword [ebx + 4]
mov ebx, dword [ebp - 4]
mov ebx, dword [ebx + eax*4 + 4]
add edx, dword [ebx + 4]
mov ebx, dword [ebp - 8]
add eax, 2
dec ebx
cmp eax, ebx
jl 0x479e6e
mov ebx, dword [ebp - 8]
cmp eax, ebx
jge 0x479ea1
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 0xc]
add ebx, dword [eax + 4]
jmp 0x479ea4
mov ebx, dword [ebp - 0xc]
add edx, ecx
add ebx, edx
jmp 0x479eb0
mov ecx, dword [ebp - 0x10]
mov eax, dword [edi + 0x4c]
lea edx, [eax + 1]
mov dword [edi + 0x4c], edx
cmp eax, ebx
jge 0x479f17
cmp ecx, 2
jne 0x479ed1
mov edx, dword [edi + 4]
lea ecx, [eax + eax*2]
cmp byte [edx + ecx*8], 0x9c
jne 0x479eb0
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx + 0xe8]
test ecx, ecx
je 0x479f2c
mov dword [edi + 0x50], 9
mov ecx, dword [str.interrupted]
mov esi, 1
mov eax, str.unknown_error
test ecx, ecx
je 0x479efb
mov eax, ecx
push eax
push 0x54b538
push edx
add edi, 0x2c
push edi
call fcn.0044f600
add esp, 0x10
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, 0x65
mov dword [edi + 0x50], 0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x20]
cmp eax, ecx
jge 0x479f41
mov ecx, dword [edi + 4]
lea edx, [eax + eax*2]
lea ebx, [ecx + edx*8]
mov dword [ebp - 0xc], ebx
jmp 0x479f6f
mov ebx, dword [ebp - 4]
sub eax, ecx
mov ecx, dword [ebx]
mov ecx, dword [ecx + 4]
xor edx, edx
cmp eax, ecx
jl 0x479f5f
sub eax, ecx
mov ecx, dword [ebx + edx*4 + 4]
mov ecx, dword [ecx + 4]
inc edx
cmp eax, ecx
jge 0x479f51
mov edx, dword [ebx + edx*4]
mov edx, dword [edx]
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8]
mov dword [ebp - 0xc], ecx
mov ebx, ecx
mov edx, dword [edi + 0x58]
and dl, 3
cmp dl, 1
jne 0x47a025
cdq
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], eax
mov ecx, 4
mov word [esi + 0x1c], cx
mov edx, 0xa02
mov word [esi + 0x44], dx
movzx eax, byte [ebx]
mov ecx, dword [eax*4 + 0x547880]
mov dword [esi + 0x2c], ecx
mov eax, ecx
test ecx, ecx
je 0x479fbd
cmp byte [ecx], 0
je 0x479fb6
nop
inc eax
cmp byte [eax], 0
jne 0x479fb0
sub eax, ecx
and eax, 0x3fffffff
mov dword [esi + 0x40], eax
mov byte [esi + 0x46], 1
add esi, 0x50
cmp byte [ebx + 1], 0xee
jne 0x47a025
mov ecx, dword [ebp - 8]
lea edx, [ecx*4 + 4]
xor eax, eax
mov dword [ebp - 0x10], edx
test ecx, ecx
jle 0x479ff0
mov edx, dword [ebx + 0x10]
mov edi, dword [ebp - 4]
cmp dword [edi + eax*4], edx
je 0x479ff0
inc eax
cmp eax, ecx
jl 0x479fe3
cmp eax, ecx
jne 0x47a025
mov edi, dword [ebp - 0x14]
xor eax, eax
test ecx, ecx
setne al
push eax
mov eax, dword [ebp - 0x10]
call fcn.00468380
add esp, 4
test eax, eax
jne 0x47a025
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi + 4]
mov eax, dword [ebp - 8]
mov dword [ecx + eax*4], edx
mov ecx, dword [ebp - 0x10]
or word [edi + 0x1c], 0x10
mov dword [edi + 0x18], ecx
mov edx, 4
mov word [esi + 0x1c], dx
mov eax, dword [ebx + 4]
cdq
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
mov eax, 4
mov word [esi + 0x44], ax
mov eax, dword [ebx + 8]
cdq
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
mov ecx, 4
mov word [esi + 0x6c], cx
mov eax, dword [ebx + 0xc]
cdq
mov dword [esi + 0x60], eax
push 0
lea eax, [ecx + 0x1c]
lea edi, [esi + 0x78]
mov dword [esi + 0x64], edx
call fcn.00468380
add esp, 4
test eax, eax
je 0x47a07e
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esi + 0x7c]
mov eax, dword [ebp - 0xc]
mov edx, 0x202
mov word [esi + 0x94], dx
call fcn.00479860
mov ecx, dword [esi + 0x7c]
mov dword [ebp - 0x18], eax
cmp eax, ecx
je 0x47a0b4
push 1
push eax
xor eax, eax
or ecx, 0xffffffff
lea edx, [esi + 0x78]
call fcn.00468de0
add esp, 8
jmp 0x47a0da
mov eax, ecx
test ecx, ecx
je 0x47a0cd
cmp byte [ecx], 0
je 0x47a0c6
nop
inc eax
cmp byte [eax], 0
jne 0x47a0c0
sub eax, ecx
and eax, 0x3fffffff
mov dword [esi + 0x90], eax
mov byte [esi + 0x96], 1
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x58]
and al, 3
cmp al, 1
jne 0x47a18c
push 0
mov eax, 4
lea edi, [esi + 0xa0]
call fcn.00468380
add esp, 4
test eax, eax
jne 0x47a072
mov edx, dword [ebp - 0xc]
mov ecx, 0x202
mov word [esi + 0xbc], cx
mov ecx, dword [esi + 0xa4]
mov dword [esi + 0xb8], 2
movzx eax, byte [edx + 3]
push eax
push str._.2x
push ecx
push 3
call fcn.0047e7b0
push 0
mov eax, 0x1f4
lea edi, [esi + 0xc8]
mov byte [esi + 0xbe], 1
call fcn.00468380
add esp, 0x14
test eax, eax
jne 0x47a072
mov eax, dword [esi + 0xcc]
mov ecx, dword [ebp - 0x18]
mov edx, 0x202
push eax
mov word [esi + 0xe4], dx
mov edx, dword [ebp - 0xc]
push ecx
push edx
call fcn.004795b0
add esp, 0xc
mov dword [esi + 0xe0], eax
mov byte [esi + 0xe6], 1
mov ax, word [ebx + 0x58]
mov edx, dword [ebx + 8]
and ax, 3
dec ax
mov ecx, 2
sub cx, ax
add cx, cx
mov esi, 0x64
add cx, cx
pop edi
add edx, 0x28
mov eax, esi
pop esi
mov word [ebx + 0x54], cx
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x50], 0
pop ebx
mov esp, ebp
pop ebp
ret