Function at 0x41f670
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x425029
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x374
push ebp
push esi
mov esi, dword [esp + 0x390]
mov dword [esp + 0x20], ecx
push edi
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x41f6d8
push str.C_cache::filesize:_not_initialized
lea ecx, [esp + 0x18]
call fcn.0040168c
lea eax, [esp + 0x14]
push 1
push eax
lea ecx, [esp + 0x68]
mov dword [esp + 0x390], 0
call fcn.004016f6
lea ecx, [esp + 0x60]
push 0x4270a8
push ecx
call fcn.00414988
mov edx, dword [ecx]
call dword [edx + 0x38]
shr eax, 1
mov edi, eax
mov dword [esp + 0x28], edi
lea eax, [edi + edi]
push eax
call fcn.00414e25
mov ecx, dword [esi + 4]
add esp, 4
mov ebp, eax
test ecx, ecx
mov dword [esp + 0x14], ebp
jne 0x41f736
push str.C_cache::filesize:_not_initialized
lea ecx, [esp + 0x1c]
call fcn.0040168c
lea ecx, [esp + 0x18]
push 1
push ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x390], 1
call fcn.004016f6
lea edx, [esp + 0x60]
push 0x4270a8
push edx
call fcn.00414988
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x41f77a
push str.C_cache::read:_not_initialized
lea ecx, [esp + 0x18]
call fcn.0040168c
lea ecx, [esp + 0x14]
push 1
push ecx
lea ecx, [esp + 0x78]
mov dword [esp + 0x390], 2
call fcn.004016f6
lea edx, [esp + 0x70]
push 0x4270a8
push edx
call fcn.00414988
mov edx, dword [ecx]
push eax
push ebp
call dword [edx + 0x1c]
xor esi, esi
mov byte [esp + 0x13], 0
test edi, edi
jbe 0x41fb0b
push ebx
cmp esi, edi
mov ebx, esi
jae 0x41f7b0
lea eax, [ebp + esi*2]
cmp word [eax], 0xd
jne 0x41f7a8
cmp word [eax + 2], 0xa
je 0x41f7b0
inc ebx
add eax, 2
cmp ebx, edi
jb 0x41f79b
mov al, byte [esp + 0x17]
test al, al
jne 0x41f7c2
mov byte [esp + 0x17], 1
jmp 0x41fafb
cmp ebx, esi
je 0x41fafb
cmp word [ebp + esi*2], 0x3b
lea ebp, [ebp + esi*2]
je 0x41fafb
lea eax, [esp + 0x60]
lea ecx, [esp + 0x184]
push eax
push ecx
push str._256s_n
push ebp
call fcn.00423a7e
add esp, 0x10
test eax, eax
je 0x41fafe
cmp eax, 0xffffffff
je 0x41fafe
cmp word [esp + 0x184], 0
je 0x41f836
lea edi, [esp + 0x184]
lea ecx, [esp + 0x84]
lea eax, [esp + 0x184]
mov dl, byte [edi]
add eax, 2
mov byte [ecx], dl
inc ecx
cmp word [eax], 0
mov edi, eax
jne 0x41f826
cmp esi, ebx
jae 0x41f84a
mov eax, ebp
cmp word [eax], 0x22
je 0x41f84a
inc esi
add eax, 2
cmp esi, ebx
jb 0x41f83c
inc esi
cmp esi, ebx
mov ecx, esi
jae 0x41f874
mov eax, dword [esp + 0x18]
lea eax, [eax + esi*2]
mov dx, word [eax]
cmp dx, 0x22
je 0x41f874
cmp dx, 0x5c
jne 0x41f86c
mov word [eax], 0xa
inc ecx
add eax, 2
cmp ecx, ebx
jb 0x41f858
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x18]
mov edx, esi
neg edx
shl edx, 0x1f
sub edx, esi
lea esi, [eax + esi*2]
add edx, ecx
xor ebp, ebp
cmp esi, ebp
mov dword [esp + 0x38c], 3
lea edi, [edx + edx + 2]
jne 0x41f8ce
lea ecx, [edi + 0xf]
push ecx
call fcn.00414e25
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
cmp eax, ebp
mov byte [esp + 0x38c], 4
je 0x41f8fa
push ebp
push edi
mov ecx, eax
call fcn.00420b10
jmp 0x41f8fc
lea edx, [edi + 0xf]
push edx
call fcn.00414e25
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
cmp eax, ebp
mov byte [esp + 0x38c], 5
je 0x41f8fa
push ebp
push edi
push esi
mov ecx, eax
call fcn.00420ac0
jmp 0x41f8fc
xor eax, eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x38c], 3
mov esi, eax
call fcn.0040178c
cmp esi, ebp
mov dword [esp + 0x10], esi
je 0x41f94d
mov al, byte [esi + 0xc]
mov edi, dword [esi + 8]
test al, al
je 0x41f923
shr edi, 1
lea ecx, [esp + 0x10]
call fcn.00408ccd
mov eax, dword [esp + 0x10]
lea eax, [edi + eax + 0xb]
mov byte [eax], 0
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x41f953
mov cl, byte [eax + 0xc]
mov esi, dword [eax + 8]
test cl, cl
je 0x41f959
shr esi, 1
jmp 0x41f959
lea eax, [esp + 0x10]
jmp 0x41f934
lea eax, [esp + 0x10]
jmp 0x41f96a
lea ecx, [esp + 0x10]
call fcn.00408ccd
mov ecx, dword [esp + 0x10]
lea eax, [esi + ecx + 0xc]
lea edx, [esp + 0x84]
mov byte [eax], 0
test edx, edx
jne 0x41f97e
mov dword [esp + 0x20], ebp
jmp 0x41f9ca
lea edi, [esp + 0x84]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
lea eax, [esi + 0xf]
push eax
call fcn.00414e25
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
cmp eax, ebp
mov byte [esp + 0x38c], 6
je 0x41f9c4
push ebp
lea ecx, [esp + 0x88]
push esi
push ecx
mov ecx, eax
call fcn.00420ac0
jmp 0x41f9c6
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], ebp
lea edx, [esp + 0x20]
lea ecx, [esp + 0x30]
push edx
mov byte [esp + 0x390], 8
call fcn.0040e973
lea eax, [esp + 0x50]
lea ecx, [esp + 0x34]
push eax
mov byte [esp + 0x390], 9
call fcn.0041f600
lea ecx, [esp + 0x30]
mov byte [esp + 0x38c], 0xa
push ecx
lea ecx, [esp + 0x40]
call fcn.0040e973
lea edx, [esp + 0x34]
lea ecx, [esp + 0x40]
push edx
mov byte [esp + 0x390], 0xb
call fcn.0041f600
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x48]
push eax
push ecx
mov ecx, dword [esp + 0x30]
mov byte [esp + 0x394], 0xc
call fcn.004200d0
lea edx, [esp + 0x4c]
lea eax, [esp + 0x48]
push edx
push eax
lea ecx, [esp + 0x60]
call fcn.00420400
mov esi, dword [esp + 0x58]
lea ecx, [esp + 0x40]
mov byte [esp + 0x38c], 0xd
call fcn.0040178c
lea ecx, [esp + 0x3c]
mov byte [esp + 0x38c], 0xa
call fcn.0040178c
lea ecx, [esp + 0x34]
mov byte [esp + 0x38c], 0xe
call fcn.0040178c
lea ecx, [esp + 0x30]
mov byte [esp + 0x38c], 8
call fcn.0040178c
lea ecx, [esp + 0x50]
mov byte [esp + 0x38c], 7
call fcn.0040178c
lea ecx, [esp + 0x20]
mov byte [esp + 0x38c], 3
call fcn.0040178c
mov eax, dword [esp + 0x10]
lea edi, [esi + 0x10]
cmp eax, ebp
je 0x41fad4
mov ecx, dword [eax + 4]
inc ecx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x10]
mov ecx, edi
mov ebp, eax
call fcn.0040178c
mov dword [edi], ebp
lea ecx, [esp + 0x10]
mov byte [esi + 0x14], 1
mov dword [esp + 0x38c], 0xffffffff
call fcn.0040178c
mov edi, dword [esp + 0x2c]
lea esi, [ebx + 2]
mov ebp, dword [esp + 0x18]
cmp esi, edi
jb 0x41f791
pop ebx
push ebp
call fcn.004148d0
mov ecx, dword [esp + 0x384]
add esp, 4
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
add esp, 0x380
ret 8