Function at 0x417070
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x44068b
mov eax, dword fs:[0]
push eax
mov eax, 0x13ec
call fcn.0042bdd0
mov eax, dword [0x44d6b0]
xor eax, esp
mov dword [esp + 0x13e8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44d6b0]
xor eax, esp
push eax
lea eax, [esp + 0x1400]
mov dword fs:[0], eax
push 0x3f
xor ebp, ebp
lea eax, [esp + 0x13c1]
mov ebx, ecx
push ebp
push eax
mov dword [esp + 0x40], ebx
mov byte [esp + 0x13c8], 0
call fcn.00429eb0
mov edi, dword [esp + 0x141c]
push edi
lea ecx, [esp + 0x13cc]
push str.Code_sav_02d.t1
push ecx
call fcn.0042baf3
lea edx, [esp + 0x13d4]
push 0x44146c
push edx
call fcn.0042aa6f
mov esi, eax
add esp, 0x20
cmp esi, ebp
je case.0x417143.552
push esi
push 1
lea eax, [esp + 0x30]
push 4
push eax
mov dword [ebx + 0x188c], edi
mov dword [esp + 0x38], ebp
call fcn.0042a98e
mov eax, dword [esp + 0x38]
sub eax, dword [0x451ef4]
add esp, 0x10
add eax, 0xfffffdda
cmp eax, 0x19
ja case.0x417143.552
movzx ecx, byte [eax + 0x417550]
jmp dword [ecx*4 + 0x417544]
mov byte [ebx + 0x16c0], 0
push esi
push 1
lea edx, [ebx + 0x158c]
push 4
push edx
call fcn.0042a98e
push esi
push 1
push 4
push 0x452250
call fcn.0042a98e
add esp, 0x20
cmp dword [0x452250], ebp
jne 0x417196
push ebp
call fcn.0042bcf2
add esp, 4
mov dword [0x452250], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add dword [0x452250], eax
push esi
push 1
lea eax, [esp + 0x34]
push 4
push eax
call fcn.0042a98e
push esi
push 1
lea ecx, [ebx + 0x10]
push 4
push ecx
call fcn.0042a98e
push esi
push 1
lea edx, [ebx + 0x1598]
push 4
push edx
call fcn.0042a98e
push esi
push 1
push 0x14
push 0x450688
call fcn.0042a98e
add esp, 0x40
push esi
push 1
push 0x14
push 0x44fae0
call fcn.0042a98e
mov eax, dword [0x451f2c]
push eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
call fcn.0042bd43
push esi
push 1
lea ecx, [esp + 0x38]
push 4
push ecx
call fcn.0042a98e
mov ecx, dword [esp + 0x40]
mov eax, 0xd1b71759
mul ecx
shr edx, 0xd
imul edx, edx, 0x2710
sub ecx, edx
mov eax, 0x51eb851f
mul ecx
mov eax, dword [0x44ed48]
shr edx, 5
mov dword [eax + 0x36c], edx
mov ecx, dword [esp + 0x40]
mov eax, 0xd1b71759
mul ecx
shr edx, 0xd
imul edx, edx, 0x2710
mov eax, ecx
sub eax, edx
xor edx, edx
mov ecx, 0x64
div ecx
mov eax, dword [0x44ed48]
push esi
push 1
push 4
mov dword [eax + 0x368], edx
mov ecx, dword [0x44ed48]
mov eax, 0xd1b71759
mul dword [esp + 0x4c]
shr edx, 0xd
imul edx, edx, 0x64
mov dword [ecx + 0x364], edx
mov eax, dword [0x44ed48]
mov ecx, dword [eax + 0x36c]
lea edx, [esp + 0x50]
push edx
mov dword [eax + 0x370], ecx
call fcn.0042a98e
mov eax, dword [esp + 0x54]
add esp, 0x34
cmp eax, ebp
jle 0x4172b4
mov ecx, dword [0x44ed48]
push eax
call fcn.0040cec0
mov dword [esp + 0x20], ebp
push esi
push 1
lea eax, [esp + 0x38]
push 4
push eax
call fcn.0042a98e
mov ecx, dword [0x451f2c]
mov edx, dword [ecx + 8]
mov eax, dword [0x44ed48]
add esp, 0x10
cmp edx, dword [eax + 0x36c]
jne 0x4172ea
mov ecx, dword [ecx + 4]
sub ecx, dword [eax + 0x368]
cmp ecx, 0xf
jbe 0x4172f0
mov dword [eax + 0x364], ebp
push esi
push 1
lea edx, [esp + 0x20]
push 4
push edx
call fcn.0042a98e
mov ecx, dword [esp + 0x28]
mov eax, 0x6b5fca6b
imul ecx
sar edx, 0x16
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x989680
sub ecx, eax
imul ecx, ecx, 0x64
add esp, 0x10
cmp ecx, ebp
mov dword [0x452280], ecx
jge 0x417332
mov dword [0x452280], ebp
push esi
push 1
push 4
push 0x452274
call fcn.0042a98e
mov edx, dword [0x452274]
add esp, 0x10
cmp edx, 0x7d0
jl 0x417362
mov ecx, dword [0x44ed58]
push 0x7d0
call fcn.00416ff0
mov ecx, dword [0x44ed48]
cmp dword [ecx + 0x364], 0x2710
jb 0x417384
cmp edx, 0x3e8
jge 0x417384
push ebp
push 1
call fcn.0040c430
push esi
push 1
push 4
push 0x452278
call fcn.0042a98e
add esp, 0x10
cmp dword [0x452278], ebp
jle 0x4173a7
push ebp
call fcn.00425230
add esp, 4
push esi
push 1
lea ecx, [esp + 0x20]
push 4
push ecx
call fcn.0042a98e
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, ebp
jle 0x4173ce
mov edx, dword [0x44ed48]
dec eax
mov dword [edx + 0x384], eax
push esi
push 1
lea eax, [esp + 0x20]
push 4
push eax
call fcn.0042a98e
mov edi, dword [esp + 0x28]
add esp, 0x10
cmp edi, ebp
jle 0x417471
mov eax, 0x66666667
imul edi
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea edx, [ecx + ecx*4]
add edx, edx
sub edi, edx
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, eax
imul edx, edx, 0x64
sub ecx, edx
mov ebx, edi
mov edi, eax
mov eax, 0x51eb851f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, eax
imul edx, edx, 0x64
mov ebp, eax
sub edi, edx
mov eax, 0x51eb851f
imul ebp
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
push ecx
mov dword [esp + 0x1c], ebp
sub ebp, eax
test ebx, ebx
setg cl
push edi
movzx edx, cl
mov ecx, dword [0x44ed48]
push ebp
push edx
call fcn.0040cbe0
mov ebx, dword [esp + 0x34]
xor ebp, ebp
push esi
push 1
lea eax, [esp + 0x1f]
push 1
push eax
mov byte [esp + 0x27], 0
call fcn.0042a98e
push esi
call fcn.0042a672
add esp, 0x14
lea ecx, [esp + 0x38]
mov dword [esp + 0x24], ebp
call fcn.00429890
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x24]
push ecx
push edx
push 1
mov ecx, ebx
mov dword [esp + 0x1414], ebp
call fcn.00417000
push eax
lea ecx, [esp + 0x44]
call fcn.00429400
mov ecx, dword [esp + 0x30]
mov esi, eax
lea eax, [esp + 0x24]
push eax
push ecx
push 2
mov ecx, ebx
call fcn.00417000
push eax
lea ecx, [esp + 0x44]
call fcn.00429400
imul esi, esi, 0x2710
add esi, eax
cmp byte [esp + 0x17], 0x59
mov dword [0x44d054], esi
mov byte [ebx + 0x159c], 0
mov dword [esp + 0x1408], 0xffffffff
lea ecx, [esp + 0x38]
je 0x41753a
call fcn.004299f0
xor al, al
mov ecx, dword [esp + 0x1400]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x13e8]
xor ecx, esp
call fcn.00429e93
add esp, 0x13f8
ret 4
call fcn.004299f0
mov al, 1
jmp 0x417510