Function at 0x484d70
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x34
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x48]
push edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], 0
call fcn.0055dc17
add esp, 4
test eax, eax
jne 0x4855be
push edi
push 1
lea eax, [esp + 0x18]
push 2
push eax
call fcn.0055d90a
mov cx, word [esp + 0x20]
movzx eax, cl
shl eax, 8
movzx ecx, ch
or eax, ecx
cwde
add esp, 0x10
cmp eax, 3
ja case.default.0x484dc4
jmp dword [eax*4 + 0x4855cc]
mov ecx, dword [esp + 0x28]
movsx eax, word [ecx + 0x14]
mov ebp, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
cdq
and edx, 7
add eax, edx
mov edx, ebp
imul edx, ebx
mov esi, eax
movsx eax, word [ecx + 8]
movsx ecx, word [ecx + 0x16]
imul eax, edx
mov dword [esp + 0x20], edx
sar esi, 3
mov edx, eax
imul edx, esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebp
dec ecx
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x14], edx
cmp ecx, 8
ja case.0x484e17.5
jmp dword [ecx*4 + 0x4855dc]
push edx
call fcn.00525c36
push esi
mov ebx, eax
call fcn.00525c36
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1c]
push eax
push 0xfe
push ebx
call fcn.00559e10
mov ecx, dword [esp + 0x5c]
push esi
push 0xfe
push ecx
call fcn.00559e10
push edi
call fcn.0055dc17
add esp, 0x24
test eax, eax
jne 0x484ead
lea ecx, [ecx]
cmp ebp, dword [esp + 0x14]
jge 0x484ead
mov edx, dword [esp + 0x48]
push esi
push 0xfe
push edx
call fcn.00559e10
mov eax, dword [esp + 0x54]
push edi
push 1
push esi
push eax
call fcn.0055d90a
mov ecx, dword [esp + 0x64]
push esi
push ecx
lea edx, [ebx + ebp]
push edx
mov dword [esp + 0x40], eax
call fcn.0055b240
mov eax, esi
imul eax, dword [esp + 0x40]
push edi
add ebp, eax
call fcn.0055dc17
add esp, 0x2c
test eax, eax
je 0x484e60
cmp dword [esp + 0x48], 0
je case.0x484e17.5
mov ecx, dword [esp + 0x48]
push ecx
call fcn.00525c2b
add esp, 4
jmp case.0x484e17.5
push edx
call fcn.00525c36
push esi
mov ebx, eax
call fcn.00525c36
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1c]
push eax
push 0xfe
push ebx
call fcn.00559e10
mov ecx, dword [esp + 0x5c]
push esi
push 0xfe
push ecx
call fcn.00559e10
push edi
call fcn.0055dc17
add esp, 0x24
test eax, eax
jne 0x484ead
lea esp, [esp]
cmp ebp, dword [esp + 0x14]
jge 0x484ead
mov edx, dword [esp + 0x48]
push esi
push 0xfe
push edx
call fcn.00559e10
mov eax, dword [esp + 0x54]
push edi
push 1
push esi
push eax
call fcn.0055d90a
mov ecx, dword [esp + 0x64]
push esi
push ecx
lea edx, [ebx + ebp]
push edx
mov dword [esp + 0x40], eax
call fcn.0055b240
mov eax, esi
imul eax, dword [esp + 0x40]
push edi
add ebp, eax
call fcn.0055dc17
add esp, 0x2c
test eax, eax
je 0x484f10
jmp 0x484ead
mov ebx, esi
cmp esi, 2
jne 0x484f72
mov ebx, 1
mov dword [esp + 0x14], eax
push ebx
call fcn.00525c36
mov edx, dword [esp + 0x18]
push edx
mov dword [esp + 0x50], eax
call fcn.00525c36
mov ecx, dword [esp + 0x1c]
push ecx
push 0xfe
push eax
mov dword [esp + 0x38], eax
call fcn.00559e10
mov edx, dword [esp + 0x5c]
push ebx
push 0xfe
push edx
call fcn.00559e10
add esp, 0x20
mov dword [esp + 0x30], ebp
cmp dword [esp + 0x20], 0
jle 0x48502d
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
add eax, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], edx
mov edi, edi
push edi
call fcn.0055dc17
add esp, 4
test eax, eax
jne 0x485026
mov eax, dword [esp + 0x48]
push edi
push 1
push ebx
push eax
call fcn.0055d90a
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x3c]
push ebx
push ecx
push edx
mov dword [esp + 0x34], eax
call fcn.0055b240
add dword [esp + 0x48], 3
mov eax, ebx
imul eax, dword [esp + 0x34]
add esp, 0x1c
add ebp, eax
cmp esi, 2
jne 0x485026
mov ecx, dword [esp + 0x48]
push edi
push 1
push ebx
push ecx
call fcn.0055d90a
add esp, 0x10
sub dword [esp + 0x34], 1
jne 0x484fd0
mov eax, dword [esp + 0x30]
inc eax
cmp eax, 3
mov dword [esp + 0x30], eax
jl 0x484fb1
cmp dword [esp + 0x48], 0
je 0x485053
mov edx, dword [esp + 0x48]
push edx
call fcn.00525c2b
add esp, 4
mov ebx, dword [esp + 0x24]
cmp ebp, dword [esp + 0x14]
jne 0x4852dd
test ebx, ebx
je 0x4855be
mov edi, dword [esp + 0x28]
cmp byte [edi + 0x50], 0
mov esi, 0xec4
mov eax, esi
je 0x4850b4
movsx ecx, word [edi + 0x3c]
imul ecx, ecx, 0x2710
mov eax, 0x81020409
imul ecx
add edx, ecx
movsx ecx, word [edi + 0x46]
imul ecx, ecx, 0x2710
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, 0x81020409
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx ecx, word [edi + 0x14]
sub ecx, 1
je 0x4852b1
sub ecx, 7
je 0x48529a
sub ecx, 8
je 0x48529a
mov dword [esp + 0x1c], 0xfffffff8
jmp 0x4852b9
push esi
call fcn.00525c36
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x18]
push eax
call fcn.00525c36
mov ecx, dword [esp + 0x1c]
push ecx
mov ebx, eax
push 0xfe
push ebx
call fcn.00559e10
mov edx, dword [esp + 0x5c]
push esi
push 0xfe
push edx
call fcn.00559e10
add esp, 0x20
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], 4
jmp 0x485130
cmp dword [esp + 0x20], 0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
jle 0x485196
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], ecx
push edi
call fcn.0055dc17
add esp, 4
test eax, eax
jne 0x48518f
mov edx, dword [esp + 0x48]
push edi
push 1
push esi
push edx
call fcn.0055d90a
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x58]
push esi
push eax
add ecx, ebx
push ecx
call fcn.0055b240
mov eax, dword [esp + 0x4c]
mov edx, esi
imul edx, dword [esp + 0x34]
lea ecx, [eax + esi*4]
add esp, 0x1c
add ebp, edx
mov dword [esp + 0x30], ecx
sub dword [esp + 0x34], 1
jne 0x485147
add dword [esp + 0x2c], esi
sub dword [esp + 0x24], 1
jne 0x485130
cmp dword [esp + 0x48], 0
je case.0x484e17.5
mov edx, dword [esp + 0x48]
push edx
call fcn.00525c2b
add esp, 4
jmp case.0x484e17.5
push esi
call fcn.00525c36
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x18]
push eax
call fcn.00525c36
mov ecx, dword [esp + 0x1c]
push ecx
mov ebx, eax
push 0xfe
push ebx
call fcn.00559e10
mov edx, dword [esp + 0x5c]
push esi
push 0xfe
push edx
call fcn.00559e10
add esp, 0x20
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], 3
cmp dword [esp + 0x20], 0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
jle 0x485272
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], ecx
lea ebx, [ebx]
push edi
call fcn.0055dc17
add esp, 4
test eax, eax
jne 0x48526b
mov edx, dword [esp + 0x48]
push edi
push 1
push esi
push edx
call fcn.0055d90a
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x58]
push esi
push eax
add ecx, ebx
push ecx
call fcn.0055b240
mov eax, dword [esp + 0x4c]
mov edx, esi
imul edx, dword [esp + 0x34]
add esp, 0x1c
lea ecx, [esi + eax]
add ebp, edx
lea edx, [ecx + esi*2]
mov dword [esp + 0x30], edx
sub dword [esp + 0x34], 1
jne 0x485220
add dword [esp + 0x2c], esi
sub dword [esp + 0x24], 1
jne 0x485203
cmp dword [esp + 0x48], 0
je case.0x484e17.5
mov eax, dword [esp + 0x48]
push eax
call fcn.00525c2b
add esp, 4
jmp case.0x484e17.5
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
push 0x18
push eax
push esi
push ecx
push edx
mov ecx, edi
call fcn.00483e90
jmp 0x4852b9
mov dword [esp + 0x1c], 0xfffffff9
cmp dword [edi], 0
push ebx
jne 0x4852d6
call fcn.00525c2b
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 0xfffffff7
pop ebx
add esp, 0x34
ret 4
mov ecx, edi
call fcn.00484380
test ebx, ebx
je 0x4855be
push ebx
call fcn.00525c2b
mov eax, dword [esp + 0x20]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4
mov ebp, dword [esp + 0x28]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
movsx eax, word [ebp + 0x14]
mov ecx, esi
imul ecx, ebx
mov dword [esp + 0x40], ebx
movsx ebx, word [ebp + 8]
cdq
imul ebx, ecx
and edx, 7
add eax, edx
sar eax, 3
imul ebx, eax
push ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x40], ebx
call fcn.00525c36
push ebx
push 0xfe
push eax
mov dword [esp + 0x3c], eax
call fcn.00559e10
movsx eax, word [ebp + 8]
mov ebx, dword [esp + 0x3c]
imul eax, esi
push 1
add eax, eax
push eax
push edi
call fcn.0055f3a8
xor ecx, ecx
add esp, 0x1c
cmp cx, word [ebp + 8]
mov dword [esp + 0x34], 0
jge 0x48543c
lea esp, [esp]
cmp dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
jle 0x485427
push edi
push 1
lea edx, [esp + 0x50]
push 1
push edx
call fcn.0055d90a
movzx eax, byte [esp + 0x58]
add esp, 0x10
cmp eax, 0x80
jge 0x4853e1
lea esi, [eax + 1]
add dword [esp + 0x20], esi
test esi, esi
je 0x485419
lea esp, [esp]
push edi
push 1
lea eax, [esp + 0x50]
push 1
push eax
call fcn.0055d90a
movzx eax, byte [esp + 0x58]
mov byte [ebx], al
add esp, 0x10
inc ebx
sub esi, 1
jne 0x4853c0
jmp 0x485419
jle 0x485419
push edi
push 1
xor eax, 0xff
lea ecx, [esp + 0x50]
add eax, 2
push 1
push ecx
mov esi, eax
call fcn.0055d90a
add dword [esp + 0x30], esi
movzx eax, byte [esp + 0x58]
add esp, 0x10
test esi, esi
je 0x485419
push esi
push eax
push ebx
call fcn.00559e10
add esp, 0xc
add ebx, esi
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x20], edx
jl 0x485393
mov eax, dword [esp + 0x34]
movsx ecx, word [ebp + 8]
inc eax
cmp eax, ecx
mov dword [esp + 0x34], eax
jl 0x485380
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
push esi
call fcn.00525c36
push esi
push 0xfe
push eax
mov dword [esp + 0x28], eax
call fcn.00559e10
xor edx, edx
add esp, 0x10
cmp dx, word [ebp + 8]
mov dword [esp + 0x20], 0
jge 0x4854c0
mov edi, dword [esp + 0x38]
mov dword [esp + 0x30], edx
cmp dword [esp + 0x24], 0
mov esi, dword [esp + 0x30]
jle 0x4854ab
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x18]
push edi
lea edx, [esi + ecx]
push ebx
push edx
call fcn.0055b240
movsx eax, word [ebp + 8]
imul eax, edi
add esp, 0xc
inc ebx
add esi, eax
sub dword [esp + 0x34], 1
jne 0x485488
mov eax, dword [esp + 0x20]
movsx ecx, word [ebp + 8]
add dword [esp + 0x30], edi
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x485475
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4854d1
push eax
call fcn.00525c2b
add esp, 4
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x4855be
mov edi, ebp
cmp byte [edi + 0x50], 0
mov esi, 0xec4
mov eax, esi
je 0x485526
movsx ecx, word [edi + 0x3c]
imul ecx, ecx, 0x2710
mov eax, 0x81020409
imul ecx
add edx, ecx
movsx ecx, word [edi + 0x46]
imul ecx, ecx, 0x2710
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, 0x81020409
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx ecx, word [edi + 0x14]
sub ecx, 1
je 0x48555a
sub ecx, 7
je 0x485543
sub ecx, 8
je 0x485543
mov dword [esp + 0x1c], 0xfffffff8
jmp 0x485562
mov edx, dword [esp + 0x14]
push 0x18
push eax
mov eax, dword [esp + 0x48]
push esi
push edx
push eax
mov ecx, edi
call fcn.00483e90
jmp 0x485562
mov dword [esp + 0x1c], 0xfffffff9
cmp dword [edi], 0
push ebx
je 0x4852bf
mov ecx, edi
call fcn.00484380
push ebx
call fcn.00525c2b
mov eax, dword [esp + 0x20]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4
pop edi
pop esi
mov dword [esp + 0x14], 0xfffffff6
mov eax, dword [esp + 0x14]
pop ebp
pop ebx
add esp, 0x34
ret 4
pop edi
pop esi
mov dword [esp + 0x14], 0xfffffff5
mov eax, dword [esp + 0x14]
pop ebp
pop ebx
add esp, 0x34
ret 4
mov dword [esp + 0x1c], 0xfffffff4
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4