Function at 0x477774
Capabilities:
Packed with generic packer

Disassembly:
sub esp, 0x30
pushal
mov ebp, eax
mov dword [esp + 0x30], ebx
mov word [esp + 0x2e], cx
mov dword [esp + 0x26], edx
mov eax, ebp
call fcn.00477fc8
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x2a7]
mov dword [esp + 0x22], eax
lea eax, [esp + 0x4c]
push eax
mov eax, ebp
mov ebx, dword [esp + 0x64]
lea ecx, [esp + 0x4c]
mov edx, dword [esp + 0x5c]
call fcn.004776cc
mov edi, dword [esp + 0x22]
cmp edi, 0
je 0x477923
mov edx, str.Getting_columns_for
mov esi, edi
mov eax, esi
mov ebx, 0
mov ecx, 2
call fcn.0051a48c
cmp edx, 0
je 0x4777e8
mov eax, edx
call fcn.00420750
mov ebx, eax
jmp 0x4777ed
mov ebx, 0
mov eax, esi
mov ecx, edx
lea edx, [esp + 0x34]
call fcn.0051a40c
cmp byte [0x59f994], 0
je 0x477809
push esi
call sub.KERNEL32.dll_FlushFileBuffers
call fcn.0040fbf0
mov dword [0x52169c], eax
mov edx, dword [esp + 0x26]
cmp edx, 0
je 0x4778c1
mov esi, edi
mov eax, esi
mov ebx, 0
mov ecx, 2
call fcn.0051a48c
cmp edx, 0
je 0x477843
mov eax, edx
call fcn.00420750
mov ebx, eax
jmp 0x477848
mov ebx, 0
mov eax, esi
mov ecx, edx
lea edx, [esp + 0x38]
call fcn.0051a40c
cmp byte [0x59f994], 0
je 0x477864
push esi
call sub.KERNEL32.dll_FlushFileBuffers
call fcn.0040fbf0
mov dword [0x52169c], eax
mov edx, 0x59ee48
mov esi, edi
mov eax, esi
mov ebx, 0
mov ecx, 2
call fcn.0051a48c
cmp edx, 0
je 0x477896
mov eax, edx
call fcn.00420750
mov ebx, eax
jmp 0x47789b
mov ebx, 0
mov eax, esi
mov ecx, edx
lea edx, [esp + 0x3c]
call fcn.0051a40c
cmp byte [0x59f994], 0
je 0x4778b7
push esi
call sub.KERNEL32.dll_FlushFileBuffers
call fcn.0040fbf0
mov dword [0x52169c], eax
mov edx, dword [esp + 0x60]
mov esi, edi
mov eax, esi
mov ebx, 0
mov ecx, 2
call fcn.0051a48c
cmp edx, 0
je 0x4778e8
mov eax, edx
call fcn.00420750
mov ebx, eax
jmp 0x4778ed
mov ebx, 0
mov eax, esi
mov ecx, edx
lea edx, [esp + 0x40]
call fcn.0051a40c
cmp byte [0x59f994], 0
je 0x477909
push esi
call sub.KERNEL32.dll_FlushFileBuffers
call fcn.0040fbf0
mov dword [0x52169c], eax
mov eax, ebp
mov ebx, edi
mov ecx, str._using
mov dl, 1
call fcn.0047cc4c
movsx eax, word [esp + 0x54]
push eax
push dword [esp + 0x50]
movsx eax, word [esp + 0x64]
push eax
push dword [esp + 0x54]
movsx eax, word [esp + 0x74]
push eax
push dword [esp + 0x3a]
movsx eax, word [esp + 0x46]
push eax
push dword [esp + 0x4c]
mov eax, dword [ebp + 4]
push eax
call dword [0x59f9ec]
mov bx, ax
mov eax, ebp
call fcn.0047cd04
cmp edi, 0
je 0x477a54
mov edx, 0x59ee54
call fcn.0040fbf0
sub eax, dword [0x52169c]
mov dword [esp + 0x2a], eax
mov eax, edi
mov ebx, 0
mov ecx, 2
call fcn.0051a48c
cmp edx, 0
je 0x47799d
mov eax, edx
call fcn.00420750
mov ebx, eax
jmp 0x4779a2
mov ebx, 0
mov eax, edi
mov ecx, edx
lea esi, [esp + 0x44]
mov edx, esi
call fcn.0051a40c
mov eax, edi
mov edx, esi
mov ebx, 0xc
mov ecx, str._Time_Taken:
call fcn.0051a40c
mov eax, dword [esp + 0x2a]
mov ebx, 0x64
cdq
idiv ebx
push edx
push eax
push str._ld._02ld_secs
push 0x5218a0
call fcn.004dbfa0
add esp, 0x10
mov eax, edi
mov ebx, 0
mov ecx, 2
call fcn.0051a48c
mov eax, 0x5218a0
cmp eax, 0
je 0x477a1f
mov eax, 0x5218a0
call fcn.00420750
mov ebx, eax
jmp 0x477a24
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x2d2], 2
je 0x4777b3
jmp 0x477a5a
mov ebx, 0
mov eax, edi
mov edx, esi
mov ecx, 0x5218a0
call fcn.0051a40c
mov eax, edi
mov edx, esi
mov ebx, 2
mov ecx, 0x59eae4
call fcn.0051a40c
cmp byte [0x59f994], 0
je 0x477a54
push edi
call sub.KERNEL32.dll_FlushFileBuffers
cmp byte [ebp + 0x14], 0
jne 0x477a0d
mov eax, dword [esp + 0x48]
call fcn.0046688c
mov eax, dword [esp + 0x4c]
call fcn.0046688c
popal
add esp, 0x30
ret 0x14