Function at 0x439d00
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x58
mov eax, dword [0x498638]
push ebx
mov ebx, dword [sym.imp.MSVCRT40.dll_fread]
push ebp
push esi
push edi
push eax
push 0x14
lea ecx, [esp + 0x5c]
push 1
push ecx
mov byte [esp + 0x60], 0
call ebx
add esp, 0x10
cmp eax, 0x14
je 0x439d3a
mov edx, 0x10aa
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
mov ebp, dword [esp + 0x56]
mov esi, dword [esp + 0x58]
and ebp, 0xffff
mov dword [esp + 0x3c], ebp
call fcn.004375b0
cmp esi, eax
je 0x439dc1
mov edx, dword [0x498638]
push 0
push 0
push edx
mov dword [0x493d54], 0
mov dword [0x493edc], 1
call dword [sym.imp.MSVCRT40.dll_fseek]
add esp, 0xc
test eax, eax
je 0x439d90
mov edx, 0x10b7
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
mov eax, dword [0x498638]
push 0
mov ecx, dword [eax + 0x10]
push ecx
call dword [sym.imp.MSVCRT40.dll__chsize]
add esp, 8
test eax, eax
je 0x439db7
mov edx, 0x10b8
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
lea esi, [ebp + ebp*4]
lea eax, [eax + eax*8]
mov dword [esp + 0x40], edx
shl esi, 3
shl eax, 1
cmp esi, eax
mov dword [esp + 0x44], eax
jbe 0x439de7
mov eax, esi
push eax
mov dword [esp + 0x14], eax
call dword [sym.imp.MSVCRT40.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x18], edi
jne 0x439e0e
mov edx, 0x10cd
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
call fcn.004375b0
lea ecx, [ebp + ebp + 2]
mov dword [0x493ee0], eax
call dword [0x498568]
mov dword [0x493eec], eax
mov eax, dword [0x498638]
push eax
push esi
push 1
push edi
call ebx
add esp, 0x10
cmp eax, esi
je 0x439e49
mov edx, 0x10dd
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
xor edx, edx
test ebp, ebp
mov dword [esp + 0x1c], edx
jbe 0x439ff8
mov ecx, dword [esp + 0x18]
lea edi, [ecx + 0x10]
mov dword [esp + 0x24], edi
mov eax, dword [edi - 0x10]
mov dword [esp + 0x48], eax
mov ecx, dword [edi - 0xc]
mov dword [esp + 0x4c], ecx
mov eax, dword [edi]
mov ecx, dword [edi - 8]
mov dword [esp + 0x34], eax
mov eax, dword [edi + 4]
test edx, edx
mov dword [esp + 0x30], eax
je 0x439e90
test eax, eax
je 0x439e95
cmp eax, dword [0x493ee4]
jae 0x439e95
mov dword [0x493ee4], eax
mov eax, dword [edi + 8]
mov esi, dword [edi + 0x14]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x20], eax
xor eax, eax
mov ax, word [edi + 0x12]
xor ebx, ebx
mov bx, word [edi + 0x10]
mov dword [esp + 0x38], eax
test ecx, ecx
je 0x439fe4
mov ecx, 0x18
call dword [0x498568]
mov ecx, dword [0x493f00]
mov ebp, eax
mov edx, ebp
call fcn.00439640
mov dword [esp + 0x28], eax
mov dword [ebp + 8], esi
mov word [ebp + 0x10], ax
mov al, byte [esp + 0x48]
cmp al, 0x2f
jne 0x439f02
lea ecx, [esp + 0x49]
push ecx
call dword [sym.imp.MSVCRT40.dll_atoi]
add esp, 4
or byte [ebp + 0x12], 0x20
mov dword [ebp + 4], eax
jmp 0x439f3f
lea edi, [esp + 0x48]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
call dword [0x498568]
mov edx, eax
lea edi, [esp + 0x48]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x24]
mov dword [ebp + 4], edx
mov ecx, dword [0x493eec]
mov eax, dword [esp + 0x1c]
mov dx, word [esp + 0x28]
or byte [ebp + 0x12], 0x10
mov word [ecx + eax*2 + 2], dx
mov ecx, 0x3c
call dword [0x498568]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov esi, eax
mov eax, dword [esp + 0x2c]
and ebx, 0xffff
mov dword [ebp], esi
mov dword [esi + 0x18], ecx
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x24], edx
mov dx, word [esp + 0x38]
mov dword [esi + 0x28], eax
mov ax, word [esp + 0x28]
mov dword [esi + 0x2c], ecx
mov ecx, 8
mov dword [esi + 0x20], 1
mov dword [esi + 0x34], ebx
mov word [esi + 0x38], dx
mov dword [esi + 4], ebp
mov dword [esi], esi
mov word [esi + 0x30], ax
call dword [0x498568]
mov edx, dword [0x493f04]
mov dword [eax + 4], esi
mov ecx, dword [edx + 4]
test ecx, ecx
jne 0x439fc9
mov dword [edx], eax
jmp 0x439fcb
mov dword [ecx], eax
mov dword [edx + 4], eax
mov ecx, dword [edx + 8]
inc ecx
mov ebp, dword [esp + 0x3c]
mov dword [edx + 8], ecx
mov eax, dword [edx + 0xc]
inc eax
mov dword [edx + 0xc], eax
mov edx, dword [esp + 0x1c]
inc edx
add edi, 0x28
cmp edx, ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], edi
jb 0x439e62
call fcn.004375b0
mov esi, eax
call fcn.004375b0
test esi, esi
jne 0x43a00c
test eax, eax
je 0x43a025
mov edx, eax
mov ecx, esi
call fcn.0043a7d0
cmp esi, dword [0x493ee4]
jae 0x439ff8
mov dword [0x493ee4], esi
jmp 0x439ff8
mov eax, dword [esp + 0x14]
mov ecx, eax
shr ecx, 1
lea eax, [ecx + eax - 1]
mov dword [0x493ec0], eax
lea edx, [eax*4 + 4]
push edx
call dword [sym.imp.MSVCRT40.dll_malloc]
add esp, 4
mov dword [0x493eb8], eax
test eax, eax
jne 0x43a05f
mov edx, 0x1164
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
mov eax, dword [0x493f04]
mov edx, dword [esp + 0x40]
push 0
push edx
mov ecx, dword [eax]
mov eax, dword [0x498638]
push eax
mov dword [esp + 0x3c], ecx
call dword [sym.imp.MSVCRT40.dll_fseek]
add esp, 0xc
test eax, eax
je 0x43a093
mov edx, 0x116d
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
mov ecx, dword [0x498638]
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x18]
push ecx
push esi
push 1
push edx
call dword [sym.imp.MSVCRT40.dll_fread]
add esp, 0x10
cmp eax, esi
je 0x43a0c2
mov edx, 0x116e
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
xor esi, esi
test eax, eax
jbe 0x43a4a2
mov edi, dword [esp + 0x44]
mov al, byte [ebp + 1]
mov bl, byte [ebp + 3]
mov dl, byte [ebp + 2]
mov cl, byte [ebp]
or al, bl
or al, dl
or al, cl
jne 0x43a0f5
mov ecx, dword [ebp + 4]
mov dword [esp + 0x34], ecx
jmp 0x43a10b
mov edx, dword [ebp]
mov dword [esp + 0x34], 0
mov dword [esp + 0x48], edx
mov eax, dword [ebp + 4]
mov dword [esp + 0x4c], eax
mov ecx, dword [ebp + 8]
mov dx, word [ebp + 0xc]
movsx ebx, byte [ebp + 0x11]
mov dword [esp + 0x40], ecx
xor eax, eax
movsx ecx, byte [ebp + 0x10]
mov ax, word [ebp + 0xe]
mov dword [esp + 0x20], ecx
add ecx, 0xfffffffe
mov word [esp + 0x1c], dx
cmp ecx, 0x67
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ebx
ja case.0x43a149.9
xor edx, edx
mov dl, byte [ecx + 0x43a630]
jmp dword [edx*4 + 0x43a610]
mov ecx, 0xc
call dword [0x498568]
mov edi, eax
mov ecx, 8
mov dword [edi], 1
call dword [0x498568]
mov dword [esp + 0x44], eax
mov dword [edi + 8], eax
mov eax, dword [0x493eb8]
lea ecx, [ebx + ebx*8]
mov dword [eax + esi*4], edi
lea ecx, [ecx + ecx + 1]
inc esi
call dword [0x498568]
mov edx, dword [esp + 0x44]
mov ebx, eax
mov eax, dword [esp + 0x24]
test eax, eax
mov dword [edx], ebx
jbe 0x43a1ef
mov dword [esp + 0x2c], eax
add ebp, 0x12
mov ecx, ebx
mov eax, ebp
add ebx, 0x12
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0xc]
mov dword [ecx + 0xc], edx
mov ax, word [eax + 0x10]
mov word [ecx + 0x10], ax
mov ecx, 0xc
call dword [0x498568]
mov ecx, dword [0x493eb8]
mov edi, eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + esi*4], edi
inc esi
dec eax
mov dword [edi], 5
mov dword [esp + 0x2c], eax
jne 0x43a19f
mov byte [ebx], 0
jmp 0x43a325
and eax, 0x30
cmp al, 0x20
je case.0x43a149.2
test ebx, ebx
je case.0x43a149.2
movsx edx, word [esp + 0x1c]
mov eax, dword [0x493eec]
add ebp, 0x12
cmp word [eax + edx*2], 0
jne 0x43a26d
mov al, byte [ebp + 0xe]
cmp al, 2
je 0x43a24d
cmp al, 6
je 0x43a24d
cmp al, 7
je 0x43a24d
mov eax, dword [0x493eb8]
inc esi
mov edi, 0x48eee8
mov dword [eax + esi*4 - 4], 0x48eee8
mov dword [eax + esi*4], 0x48eee8
inc esi
jmp 0x43a325
mov eax, dword [0x493eb8]
inc esi
mov edi, 0x48eee8
mov dword [eax + esi*4 - 4], 0x48eef8
mov dword [eax + esi*4], 0x48eef8
inc esi
jmp 0x43a325
mov ecx, 0xc
call dword [0x498568]
mov ebx, dword [0x493eb8]
mov edi, dword [esp + 0x30]
mov dword [eax], 2
mov ecx, dword [edi + 4]
mov dword [ebx + esi*4], eax
inc esi
mov dword [eax + 8], ecx
mov edx, dword [ecx + 4]
lea eax, [esi - 1]
mov dword [ecx + 8], eax
mov eax, dword [edx + 8]
test ah, 0x10
je 0x43a2c7
mov ax, word [ebp + 0xc]
mov cl, byte [ebp + 0xe]
test ax, ax
mov byte [edx + 0x14], cl
mov dword [esp + 0x1c], eax
je 0x43a2c7
mov ecx, dword [0x493eec]
movsx eax, ax
mov ax, word [ecx + eax*2]
mov word [edx + 0x16], ax
mov ecx, dword [edi]
mov dword [esp + 0x30], ecx
mov ecx, 0xc
call dword [0x498568]
mov edx, dword [0x493eb8]
mov edi, eax
mov dword [edx + esi*4], edi
mov dword [edi], 5
inc esi
jmp 0x43a325
mov ecx, 0xc
call dword [0x498568]
mov edi, eax
mov dword [edi], 3
jmp 0x43a325
mov eax, dword [0x493eb8]
inc esi
mov edi, 0x48eee8
mov dword [eax + esi*4 - 4], 0x48eee8
jmp 0x43a325
mov edx, 0x120d
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
cmp dword [edi], 3
jne 0x43a493
mov ecx, 0x12
call dword [0x498568]
mov ecx, dword [esp + 0x40]
mov dl, byte [esp + 0x20]
mov ebx, eax
mov eax, dword [esp + 0x1c]
test ax, ax
mov dword [ebx + 8], ecx
mov byte [ebx + 0x10], dl
jle 0x43a36f
mov edx, dword [0x493eec]
movsx ecx, ax
mov cx, word [edx + ecx*2]
test cx, cx
je 0x43a36b
mov eax, 0xfffffffe
sub eax, ecx
mov word [ebx + 0xc], ax
mov eax, dword [esp + 0x34]
mov cl, byte [esp + 0x24]
mov dx, word [esp + 0x28]
mov byte [ebx + 0x11], cl
test eax, eax
mov word [ebx + 0xe], dx
jne 0x43a39a
lea eax, [esp + 0x48]
push 8
push eax
push ebx
call dword [sym.imp.MSVCRT40.dll_strncpy]
add esp, 0xc
jmp 0x43a3a3
mov dword [ebx], 0
mov dword [ebx + 4], eax
mov ecx, dword [0x493eb8]
mov eax, dword [esp + 0x20]
mov dword [edi + 8], ebx
mov dword [ecx + esi*4], edi
inc esi
cmp eax, 0x65
je 0x43a41b
cmp word [ebx + 0xc], 0xfffe
jge 0x43a3cc
mov edx, dword [esp + 0x28]
and edx, 0x30
cmp dl, 0x20
jne 0x43a41b
call fcn.004375b0
call fcn.004375b0
mov dword [esp + 0x10], eax
mov dword [edi + 4], eax
cmp dword [esp + 0x20], 0x69
jne 0x43a40f
mov ecx, dword [esp + 0x10]
call fcn.0043e360
test eax, eax
je 0x43a40f
mov eax, dword [0x493eb8]
inc esi
add ebp, 0x12
mov dword [eax + esi*4 - 8], 0x48eee8
mov dword [eax + esi*4 - 4], 0x48eee8
jmp 0x43a493
mov ecx, dword [esp + 0x10]
lea edx, [esi - 1]
call fcn.0043a6a0
mov eax, dword [esp + 0x24]
test eax, eax
jbe 0x43a478
mov ecx, 0xc
call dword [0x498568]
mov ebx, eax
mov eax, dword [0x493eb8]
mov ecx, 0x12
mov dword [eax + esi*4], ebx
mov dword [ebx], 4
inc esi
call dword [0x498568]
add ebp, 0x12
mov dword [esp + 0x44], eax
mov ecx, ebp
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov cx, word [ecx + 0x10]
mov edx, eax
mov word [eax + 0x10], cx
mov dword [ebx + 8], edx
jmp 0x43a493
mov eax, dword [esp + 0x28]
and eax, 0x30
cmp al, 0x20
jne 0x43a493
cmp word [ebx + 0xc], 0xfffe
jge 0x43a493
mov ecx, dword [esp + 0x10]
call fcn.00437600
mov eax, dword [esp + 0x14]
add ebp, 0x12
cmp esi, eax
jb 0x43a0d8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push ecx
mov dword [0x493ebc], eax
mov dword [0x493ec4], eax
call dword [sym.imp.MSVCRT40.dll_free]
add esp, 4
call fcn.004375b0
call fcn.004375b0
mov edx, dword [0x498638]
mov ebx, dword [sym.imp.MSVCRT40.dll_fread]
push edx
push 4
lea eax, [esp + 0x5c]
push 1
push eax
call ebx
add esp, 0x10
cmp eax, 4
je 0x43a4f7
mov edx, 0x12a0
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
mov ecx, dword [esp + 0x54]
lea esi, [ecx - 4]
push esi
call dword [sym.imp.MSVCRT40.dll_malloc]
mov edi, eax
add esp, 4
test edi, edi
jne 0x43a51d
mov edx, 0x12a6
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
mov edx, dword [0x498638]
push edx
push esi
push 1
push edi
call ebx
add esp, 0x10
cmp eax, esi
je 0x43a540
mov edx, 0x12a8
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
mov ecx, dword [0x493f00]
call fcn.004396e0
test eax, eax
je 0x43a57c
mov cx, word [eax + 0x12]
test cl, 0x20
je 0x43a56d
mov esi, dword [eax + 4]
lea edx, [edi - 4]
add esi, edx
and ecx, 0xffdf
mov dword [eax + 4], esi
mov word [eax + 0x12], cx
mov ecx, dword [0x493f00]
call fcn.004396e0
test eax, eax
jne 0x43a54f
mov eax, dword [0x493ebc]
test eax, eax
jbe 0x43a5ad
mov ecx, dword [0x493eb8]
mov edx, eax
mov eax, dword [ecx]
cmp dword [eax], 3
jne 0x43a5a7
mov eax, dword [eax + 8]
cmp dword [eax], 0
jne 0x43a5a7
mov ebx, dword [eax + 4]
lea esi, [edi - 4]
add ebx, esi
mov dword [eax + 4], ebx
add ecx, 4
dec edx
jne 0x43a58d
mov eax, dword [0x498638]
push 0
push 0
push eax
call dword [sym.imp.MSVCRT40.dll_fseek]
add esp, 0xc
test eax, eax
je 0x43a5d3
mov edx, 0x12d8
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
mov edx, dword [0x498638]
mov ecx, dword [0x493ee0]
push ecx
mov eax, dword [edx + 0x10]
push eax
call dword [sym.imp.MSVCRT40.dll__chsize]
add esp, 8
test eax, eax
je 0x43a600
mov edx, 0x12d9
mov ecx, str.c:cutc_srcP2coffemit.c
call fcn.00484cb0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x58
ret