Function at 0x488470
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
xor ebx, ebx
push esi
mov esi, eax
push edi
mov edi, dword [esi + 0x6c]
lea eax, [esi + 0xd8]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x40], eax
mov dword [esi + 0x8d8], eax
mov dword [esi + 0x84], 1
mov dword [esi + 0x109bc], ebx
cmp edi, ebx
jbe 0x4884e2
lea eax, [edi*4]
push eax
call fcn.0049574c
add esp, 4
mov dword [ebp - 0x1c], eax
cmp eax, ebx
je 0x4884e2
cmp edi, ebx
jbe 0x4884e2
mov ecx, edi
mov edi, dword [ebp - 0x1c]
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esi + 0x70]
cmp edi, ebx
jbe 0x48850d
lea ecx, [edi*4]
push ecx
call fcn.0049574c
add esp, 4
mov dword [ebp - 0x14], eax
cmp eax, ebx
je 0x48850d
cmp edi, ebx
jbe 0x48850d
mov ecx, edi
mov edi, dword [ebp - 0x14]
xor eax, eax
rep stosd dword es:[edi], eax
lea edi, [esi + 0xc8]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x2c], ebx
jmp 0x488533
mov edi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x8d8], eax
push edi
mov eax, 4
call fcn.00483a30
add esp, 4
test eax, eax
je 0x48882c
push 4
push 0x553738
push edi
call fcn.004945e1
add esp, 0xc
test eax, eax
jne 0x488838
call fcn.00483050
test eax, eax
jne 0x4888bc
movzx ecx, word [esi + 0x10954]
push 2
push ecx
mov edi, esi
call fcn.00484790
add esp, 8
test eax, eax
je 0x4885ad
cmp eax, dword [ebp - 4]
jle 0x4885a4
mov dword [ebp - 4], eax
cmp eax, 1
jg 0x4888c4
movzx edi, word [esi + 0x10956]
test edi, edi
je 0x48863d
mov eax, dword [esi + 0x10918]
test eax, eax
je 0x4885cf
push eax
call fcn.00495660
add esp, 4
push edi
call fcn.0049574c
add esp, 4
mov dword [esi + 0x10918], eax
test eax, eax
jne 0x48862a
push 0x401
push edi
lea ebx, [esi + 0x8dc]
push 0x53a7e4
push ebx
call fcn.00494428
mov edx, dword [esi + 0x10b54]
add esp, 0xc
push eax
push ebx
push esi
call edx
sub edi, dword [esi + 0x10914]
sub edi, dword [esi + 0x108e4]
add edi, dword [esi + 0x10910]
add edi, dword [esi + 0x108e8]
push edi
call fcn.00483c50
add esp, 4
jmp 0x48863d
push eax
mov eax, edi
call fcn.00483a30
add esp, 4
test eax, eax
je 0x48872a
movzx eax, word [esi + 0x10958]
test eax, eax
je 0x488669
sub eax, dword [esi + 0x10914]
sub eax, dword [esi + 0x108e4]
add eax, dword [esi + 0x10910]
add eax, dword [esi + 0x108e8]
push eax
call fcn.00483c50
add esp, 4
cmp dword [esi + 0x74], 0
jne 0x4886f2
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x4886c2
xor edi, edi
test eax, eax
je 0x488719
lea ebx, [esi + 0x109f0]
lea ebx, [ebx]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0xc0]
mov ecx, dword [ecx + edi*4]
push eax
push ebx
push ecx
call fcn.00490460
add esp, 0xc
cmp eax, 1
je 0x4886b4
inc edi
cmp edi, dword [esi + 0x6c]
jb 0x488690
jmp 0x488719
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4886c2
mov dword [eax + edi*4], 1
xor edi, edi
cmp dword [esi + 0x70], edi
jbe 0x4886f2
lea ebx, [esi + 0x109f0]
nop
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0xc4]
mov ecx, dword [edx + edi*4]
push eax
push ebx
push ecx
call fcn.00490460
add esp, 0xc
cmp eax, 1
je 0x488704
inc edi
cmp edi, dword [esi + 0x70]
jb 0x4886d0
call fcn.00488db0
test eax, eax
je 0x488716
inc dword [ebp - 0x10]
add dword [ebp - 0x18], 0x20
jmp 0x488719
cmp dword [ebp - 0x14], 0
je 0x488719
mov eax, dword [ebp - 0x14]
mov dword [eax + edi*4], 1
jmp 0x488719
inc dword [ebp - 0xc]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x10], 0x40
jae 0x488779
mov edi, dword [ebp - 0x34]
jmp 0x488540
mov eax, 0x33
cmp dword [ebp - 4], eax
jge 0x488737
mov dword [ebp - 4], eax
push 0x401
push 0x54a170
lea ebx, [esi + 0x88dc]
lea eax, [esi + 0x109f0]
lea edi, [esi + 0x8dc]
call fcn.0048b340
push eax
push 0x539ef0
push edi
call fcn.00494428
mov edx, dword [esi + 0x10b54]
add esp, 0x10
push eax
push edi
push esi
call edx
mov dword [ebp - 8], 1
mov eax, dword [esi + 0x108ec]
mov ecx, dword [ebp - 4]
mov edi, dword [esi + 0x10910]
mov ebx, dword [esi + 0x108e8]
push ecx
mov dword [ebp - 0x18], eax
lea edx, [ebp - 0x20]
push edx
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x10]
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x30]
push eax
push ecx
mov eax, esi
call fcn.00489130
add esp, 0x1c
test eax, eax
je 0x4887d7
cmp eax, dword [ebp - 4]
jle 0x4887c0
mov dword [ebp - 4], eax
cmp dword [esi + 0x109c0], 1
jg 0x488904
cmp dword [ebp - 4], 0x50
je 0x488904
mov edx, dword [esi + 0x10908]
push 0
push edi
push edx
call fcn.004b6ba2
mov ecx, dword [esi + 0x10908]
add esp, 0xc
mov dword [esi + 0x10910], eax
mov eax, dword [esi + 0x108e4]
push 0x2000
push eax
push ecx
call fcn.004b6a37
mov edx, dword [ebp - 0x18]
add dword [ebp - 0x2c], 0x40
add esp, 0xc
cmp dword [ebp - 8], 0
mov dword [esi + 0x108e8], ebx
mov dword [esi + 0x108ec], edx
je 0x488530
jmp 0x48890b
mov dword [ebp - 4], 0x33
jmp 0x488772
mov cx, word [ebp - 0x28]
cmp cx, word [esi + 0x1096e]
jne 0x488863
push 4
push 0x553740
push edi
call fcn.004945e1
add esp, 0xc
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x38], eax
jmp 0x488772
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
push 0x401
lea ecx, [edx + eax + 1]
push ecx
lea edi, [esi + 0x8dc]
push 0x53b130
push edi
call fcn.00494428
mov edx, dword [esi + 0x10b54]
add esp, 0xc
push eax
push edi
push esi
call edx
push 0x401
push 0x53b1a8
push edi
call fcn.00494428
add esp, 8
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov dword [ebp - 4], 3
jmp 0x488772
mov dword [ebp - 4], eax
jmp 0x488772
push 0x401
push 0x54a170
lea ebx, [esi + 0x88dc]
lea eax, [esi + 0x109f0]
lea edi, [esi + 0x8dc]
call fcn.0048b340
push eax
push 0x539dd4
push edi
call fcn.00494428
mov ecx, dword [esi + 0x10b54]
add esp, 0x10
push eax
push edi
push esi
call ecx
jmp 0x488772
mov dword [ebp - 8], 0
cmp dword [ebp - 0x24], 0
jbe 0x488a56
mov edi, dword [ebp - 0x24]
lea eax, [edi*4]
push eax
call fcn.0049574c
xor ebx, ebx
add esp, 4
mov dword [ebp - 0x34], eax
cmp eax, ebx
jne 0x488974
push 0x401
lea edi, [esi + 0x8dc]
push 0x53a10c
push edi
call fcn.00494428
mov ecx, dword [esi + 0x10b54]
add esp, 8
push eax
push edi
push esi
call ecx
mov edi, dword [ebp - 0x20]
cmp edi, ebx
je 0x488a56
push edi
mov edi, dword [edi]
call fcn.00495660
add esp, 4
test edi, edi
jne 0x488960
jmp 0x488a56
mov dword [ebp - 0x28], ebx
cmp edi, 1
jne 0x488983
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
jmp 0x4889ab
xor ecx, ecx
cmp edi, ebx
jbe 0x48899a
mov edx, dword [ebp - 0x20]
lea esp, [esp]
mov dword [eax + ecx*4], edx
mov edx, dword [edx]
inc ecx
cmp ecx, edi
jb 0x488990
push 0x48b390
push 4
push edi
push eax
call fcn.004ee450
add esp, 0x10
mov dword [ebp - 0x2c], ebx
cmp edi, ebx
jbe 0x488a15
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
mov ebx, dword [eax + ecx*4]
mov eax, ebx
call fcn.00485910
mov dword [ebp - 0x44], eax
test eax, eax
je 0x488a00
mov edx, dword [ebx + 4]
inc dword [ebp - 0x28]
push 0x201
push edx
lea edi, [esi + 0x8dc]
push 0x53a148
push edi
call fcn.00494428
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
cmp dword [ebp - 4], 0
jne 0x488a00
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 4], ecx
push ebx
call fcn.00495660
mov eax, dword [ebp - 0x2c]
inc eax
add esp, 4
mov dword [ebp - 0x2c], eax
cmp eax, dword [ebp - 0x24]
jb 0x4889b2
mov edx, dword [ebp - 0x34]
push edx
call fcn.00495660
add esp, 4
cmp dword [esi + 0x44], 0
jne 0x488a56
cmp dword [esi + 0x38], 0
jne 0x488a56
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x488a56
push 0
push eax
lea edi, [esi + 0x8dc]
push 0x53a174
push edi
call fcn.00494428
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x488ae3
cmp dword [ebp - 8], 0
je 0x488ada
xor ebx, ebx
cmp dword [esi + 0x6c], ebx
jbe 0x488ada
lea ecx, [ebx + 1]
cmp dword [eax + ebx*4], 0
jne 0x488ad3
cmp dword [esi + 0xa0], 0
jne 0x488ac1
cmp dword [esi + 0xa4], 0
jne 0x488ac1
mov ecx, dword [esi + 0xc0]
mov edx, dword [ecx + ebx*4]
push 0x401
push edx
lea edi, [esi + 0x8dc]
push 0x53ae0c
push edi
call fcn.00494428
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov eax, dword [ebp - 0x1c]
mov ecx, 1
jmp 0x488ac7
add dword [esi + 0x9c], ecx
cmp dword [ebp - 4], ecx
jg 0x488ad3
mov dword [ebp - 4], 0xb
add ebx, ecx
cmp ebx, dword [esi + 0x6c]
jb 0x488a71
push eax
call fcn.00495660
add esp, 4
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x488b3d
cmp dword [ebp - 8], 0
je 0x488b34
xor edi, edi
cmp dword [esi + 0x70], edi
jbe 0x488b34
cmp dword [eax + edi*4], 0
jne 0x488b2e
mov ecx, dword [esi + 0xc4]
mov edx, dword [ecx + edi*4]
push 0x401
push edx
lea ebx, [esi + 0x8dc]
push 0x53b178
push ebx
call fcn.00494428
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push ebx
push esi
call eax
mov eax, dword [ebp - 0x14]
inc edi
cmp edi, dword [esi + 0x70]
jb 0x488af7
push eax
call fcn.00495660
add esp, 4
cmp dword [ebp - 8], 0
je 0x488d97
cmp dword [ebp - 0x38], 0
je 0x488b9d
push 0x401
lea edi, [esi + 0x8dc]
push 0x53b0d8
push edi
call fcn.00494428
mov ecx, dword [esi + 0x10b54]
add esp, 8
push eax
push edi
push esi
call ecx
push 0x401
push 0x53b1a8
push edi
call fcn.00494428
mov edx, dword [esi + 0x10b54]
add esp, 8
push eax
push edi
push esi
call edx
mov edx, dword [ebp - 4]
test edx, edx
jne 0x488ba0
mov dword [ebp - 4], 1
mov edx, dword [ebp - 4]
cmp dword [esi + 0x44], 0
mov ebx, dword [ebp - 0x3c]
je 0x488d2b
mov eax, dword [ebp - 0x30]
mov ecx, dword [esi + 0x38]
sub eax, ebx
cmp ecx, 2
jge 0x488cf8
test edx, edx
je 0x488bf4
mov eax, 0x54a178
cmp edx, 1
je 0x488bd1
mov eax, 0x53c84c
mov ecx, dword [esi + 0x10904]
push 0
push ecx
push eax
lea edi, [esi + 0x8dc]
push 0x53a1ac
push edi
call fcn.00494428
add esp, 0x10
jmp 0x488c88
test eax, eax
jne 0x488c21
push eax
mov eax, dword [esi + 0x10904]
push eax
lea edi, [esi + 0x8dc]
push 0x53a1d8
push edi
call fcn.00494428
mov ecx, dword [esi + 0x10b54]
add esp, 0xc
push eax
push edi
push esi
call ecx
jmp 0x488c93
cmp dword [esi + 0x74], 0
je 0x488c5a
mov edx, dword [ebp - 0xc]
lea ecx, [ebx + edx]
test ecx, ecx
jne 0x488c5a
mov edx, dword [esi + 0x10904]
push ecx
push edx
lea edi, [esi + 0x8dc]
push 0x53a2e4
push edi
call fcn.00494428
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
jmp 0x488c93
mov ecx, 0x53c84c
cmp eax, 1
je 0x488c69
mov ecx, 0x549d28
push 0
push ecx
mov ecx, dword [esi + 0x10904]
push eax
push ecx
lea edi, [esi + 0x8dc]
push 0x53a314
push edi
call fcn.00494428
add esp, 0x14
mov edx, dword [esi + 0x10b54]
push eax
push edi
push esi
call edx
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x488cc6
mov eax, 0x53c84c
cmp ecx, 1
je 0x488ca9
mov eax, 0x549d28
push 0
push eax
push ecx
push 0x53a360
push edi
call fcn.00494428
add esp, 0x10
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
test ebx, ebx
je 0x488d2b
mov eax, 0x53c84c
cmp ebx, 1
je 0x488cd9
mov eax, 0x549d28
push 0
push eax
push ebx
push 0x53a284
push edi
call fcn.00494428
mov ecx, dword [esi + 0x10b54]
add esp, 0x10
push eax
push edi
push esi
call ecx
jmp 0x488d2b
test ecx, ecx
jne 0x488d2b
test edx, edx
jne 0x488d2b
test eax, eax
jne 0x488d2b
mov edx, dword [esi + 0x10904]
push eax
push edx
lea edi, [esi + 0x8dc]
push 0x53a1d8
push edi
call fcn.00494428
add esp, 0xc
push eax
mov eax, dword [esi + 0x10b54]
push edi
push esi
call eax
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x488d4f
cmp dword [ebp - 4], 1
jg 0x488d4f
xor ecx, ecx
cmp ecx, dword [ebp - 0xc]
sbb eax, eax
and eax, 0x46
add eax, 0xb
mov dword [ebp - 4], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, ebx
mov eax, dword [ebp - 4]
jne 0x488d6c
cmp eax, 1
jg 0x488d6c
mov dword [ebp - 4], 0x52
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0xc], 0
jbe 0x488d88
cmp eax, 1
jg 0x488d88
mov dword [ebp - 4], 0x51
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x488d97
test eax, eax
jne 0x488d97
mov dword [ebp - 4], 1
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret