Function at 0x435025
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
and dword [ebp - 0xc], 0
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
push edi
mov dword [ebp - 0x10], ebx
call fcn.004b3a44
pop ecx
cmp eax, 0xff
jne case.0x43516a.217
push edi
call fcn.004b3a44
pop ecx
cmp eax, 0xd8
jne case.0x43516a.217
mov dword [ebx + 0x256], 0x12c012c
mov byte [ebx + 0x255], 1
jmp case.0x43516a.196
push edi
call fcn.004b39b0
pop ecx
test eax, eax
jne 0x4352eb
mov ecx, ebx
call fcn.00435568
xor ebx, ebx
xor esi, esi
push edi
call fcn.004b3a44
mov edx, eax
mov eax, 0xff
mov dword [ebp - 0x18], edx
pop ecx
cmp edx, eax
je 0x4350a7
cmp ebx, eax
je 0x4350ac
mov ebx, edx
inc esi
jmp 0x43508e
mov ebx, dword [ebp - 0x10]
cmp esi, 0xa
jg 0x4352eb
imul ecx, dword [ebx + 0xbb8], 0xc
mov eax, dword [ebx + 0xbb0]
push edi
mov dword [ecx + eax + 4], edx
call fcn.004b3a44
push edi
mov dword [ebp - 8], eax
call fcn.004b3a44
mov edx, dword [ebp - 8]
shl edx, 8
or edx, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], edx
pop ecx
pop ecx
cmp edx, 2
jl case.0x43516a.196
imul ecx, dword [ebx + 0xbb8], 0xc
mov eax, dword [ebx + 0xbb0]
push edx
mov dword [ecx + eax + 8], edx
call fcn.004ad866
mov esi, eax
pop ecx
test esi, esi
je 0x4352eb
imul ecx, dword [ebx + 0xbb8], 0xc
mov eax, dword [ebx + 0xbb0]
push edi
mov dword [ecx + eax], esi
lea ecx, [esi + 2]
mov eax, dword [ebp - 8]
mov byte [esi], al
mov eax, dword [ebp - 0x14]
mov byte [esi + 1], al
mov eax, dword [ebp - 4]
add eax, 0xfffffffe
push eax
push 1
push ecx
call fcn.004ac9b1
mov ecx, dword [ebp - 0x18]
add esp, 0x10
mov edx, dword [ebx + 0xbb8]
inc edx
mov dword [ebx + 0xbb8], edx
lea eax, [ecx - 0xc0]
cmp eax, 0x3e
ja case.0x43516a.196
movzx eax, byte [eax + 0x435319]
jmp dword [eax*4 + 0x4352f9]
cmp dword [ebp - 0xc], 0
jne 0x4351d6
test byte [ebp + 0xc], 1
je 0x4351d6
push dword [ebp - 4]
mov ecx, ebx
push esi
call fcn.00435785
mov dword [ebp - 0xc], 1
jmp case.0x43516a.196
cmp dword [ebp - 4], 0x10
jl 0x4351d6
mov byte [ebx + 0x254], 1
mov al, byte [esi + 9]
mov byte [ebx + 0x255], al
movzx ecx, byte [esi + 0xa]
movzx eax, byte [esi + 0xb]
shl cx, 8
or cx, ax
mov word [ebx + 0x256], cx
movzx ecx, byte [esi + 0xc]
movzx eax, byte [esi + 0xd]
shl cx, 8
or cx, ax
mov word [ebx + 0x258], cx
lea eax, [edx - 1]
imul ecx, eax, 0xc
mov dword [ebx + 0xbb8], eax
mov eax, dword [ebx + 0xbb0]
push dword [ecx + eax]
call fcn.004ad84b
pop ecx
jmp case.0x43516a.196
test byte [ebp + 0xc], 1
je 0x4351d6
cmp dword [esi + 2], 0x66697845
jne 0x43520f
push dword [ebp - 4]
mov ecx, ebx
push esi
call fcn.004358f8
jmp case.0x43516a.196
cmp dword [esi + 2], 0x70747468
jne 0x4351d6
cmp byte [esi + 6], 0x3a
jne 0x4351d6
mov eax, dword [ebx + 0xbb0]
imul ecx, edx, 0xc
mov dword [ecx + eax - 8], 0x10e1
jmp case.0x43516a.196
test byte [ebp + 0xc], 1
jne case.0x43516a.196
jmp 0x4351d6
push ecx
push esi
mov ecx, ebx
call fcn.00435831
push edi
call fcn.004b39dc
pop ecx
test eax, eax
je 0x435074
jmp 0x4352eb
test byte [ebp + 0xc], 2
je 0x4352eb
push edi
call fcn.004ad519
push 2
push 0
push edi
mov esi, eax
call fcn.004ace01
push edi
call fcn.004ad519
push 0
push esi
push dword [ebp + 8]
mov edi, eax
call fcn.004ace01
sub edi, esi
push edi
call fcn.004ad866
push dword [ebp + 8]
mov esi, eax
push edi
push 1
push esi
call fcn.004ac9b1
add esp, 0x34
mov ecx, ebx
call fcn.00435568
imul ecx, dword [ebx + 0xbb8], 0xc
mov eax, dword [ebx + 0xbb0]
mov dword [ecx + eax], esi
imul edx, dword [ebx + 0xbb8], 0xc
mov ecx, dword [ebx + 0xbb0]
mov dword [edx + ecx + 8], edi
imul edx, dword [ebx + 0xbb8], 0xc
mov ecx, dword [ebx + 0xbb0]
mov dword [edx + ecx + 4], 0x123
inc dword [ebx + 0xbb8]
mov dword [ebx + 0xbbc], 1
xor eax, eax
inc eax
jmp 0x4352f2
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 8