Function at 0x416280
Capabilities:
Get file size
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x2cf4
call fcn.00418e60
mov eax, dword [0x46a754]
push ebx
push ebp
mov ebp, dword [esp + 0x2d0c]
push esi
mov esi, ecx
mov dword [esp + 0x18], eax
xor ebx, ebx
mov eax, dword [esi + 0xd8]
push edi
cmp eax, ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov edi, 1
jne 0x41635c
mov ecx, dword [esi + 0x6c]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edx, dword [esi + 0x6c]
push ebx
push ebx
push ebx
push edx
mov dword [esp + 0x48], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov esi, dword [sym.imp.USER32.dll_IsCharAlphaNumericA]
push ebx
call esi
xor ecx, ecx
mov dword [esp + ebx*4 + 0x904], eax
test eax, eax
sete cl
mov dword [esp + ebx*4 + 0x504], ecx
mov byte [esp + ebx + 0x404], bl
inc ebx
cmp ebx, 0x100
jl 0x4162e3
mov al, byte [0x44b421]
test al, al
je 0x41632a
mov ecx, 0x44b421
inc ecx
movsx edx, al
mov al, byte [ecx]
test al, al
mov dword [esp + edx*4 + 0x904], edi
jne 0x416319
mov eax, dword [esp + 0x2d10]
test eax, eax
je 0x416345
test ebp, ebp
jne 0x41635c
mov ecx, 0x40
mov esi, 0x46a53c
jmp 0x416353
test ebp, ebp
je 0x41635c
mov ecx, 0x40
mov esi, 0x46a63c
lea edi, [esp + 0x404]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0xd04]
lea ecx, [esp + 0xd04]
xor ebp, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], 0x64
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4163f3
mov ecx, dword [esp + 0x28]
mov edx, dword [0x46a750]
mov eax, ecx
push edx
inc ecx
push 0x64
push eax
mov dword [esp + 0x34], ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edi, dword [esp + 0x1c]
mov ebx, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x24], ebx
mov ebp, ecx
je 0x416850
mov eax, dword [esp + 0x1c]
lea ecx, [ebp + 1]
mov edx, ecx
mov esi, eax
lea edi, [esp + 0x44]
lea eax, [eax + ebp + 1]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x1c], eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x10]
jmp 0x4164d3
cmp ebp, 1
jle 0x416444
xor ecx, ecx
mov cl, byte [esp + ebp + 0x43]
mov eax, dword [esp + ecx*4 + 0x504]
test eax, eax
je 0x416414
dec ebp
mov byte [esp + ebp + 0x44], 0
jmp 0x4164d3
mov edx, dword [esp + 0x44]
and edx, 0xff
mov eax, dword [esp + edx*4 + 0x504]
test eax, eax
je 0x416444
mov eax, ebp
lea ecx, [esp + 0x44]
push eax
lea eax, [esp + 0x49]
push eax
push ecx
dec ebp
call fcn.004189b0
add esp, 0xc
jmp 0x4164d3
xor ebp, ebp
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
cmp ecx, eax
jae 0x41645d
xor eax, eax
mov al, byte [ecx]
inc ecx
mov dword [esp + 0x20], ecx
jmp 0x416485
lea edx, [esp + 0x30]
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x30]
push eax
mov eax, dword [esi + 0x6c]
push ecx
lea edx, [esp + 0xd10]
push 0x2000
push edx
push eax
call fcn.00416910
add esp, 0x18
cmp eax, 0xffffffff
je 0x4164ae
mov ecx, dword [esp + eax*4 + 0x904]
test ecx, ecx
je 0x4164a8
cmp ebp, 0x3f
jae 0x416446
mov cl, byte [esp + eax + 0x404]
mov byte [esp + ebp + 0x44], cl
inc ebp
jmp 0x416446
test ebp, ebp
jne 0x4164b6
jmp 0x416446
test ebp, ebp
je 0x416850
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
push edx
push 0x64
push eax
mov byte [esp + ebp + 0x50], 0
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ebx, eax
mov dword [esp + 0x24], ebx
cmp ebx, dword [esp + 0x34]
je 0x41656b
mov eax, dword [0x46a740]
test eax, eax
je 0x41656b
mov ecx, dword [esp + 0x2d0c]
push ebx
lea edx, [esp + 0x308]
push ecx
push edx
mov dword [0x46a740], 0
mov dword [esp + 0x40], ebx
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esp + 0x2d1c]
add esp, 0xc
test eax, eax
je 0x41654d
mov eax, dword [esp + 0x2d14]
test eax, eax
je 0x41654d
cmp byte [esp + 0x304], 0x20
je 0x41654d
lea esi, [esp + 0x304]
call fcn.00418831
test al, 1
je 0x416545
add byte [esi], 0xe0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x416539
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x304]
push eax
lea ecx, [esi + 0x2e7c]
call fcn.00428ce1
mov ecx, esi
call fcn.00412110
cmp ebp, 0xf
jle 0x41657a
cmp dword [esi + 0x78], 2
jge 0x416388
mov eax, 1
mov ecx, ebp
shl eax, cl
mov ecx, dword [esp + 0x2d10]
xor edx, edx
test ecx, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
jne 0x41659f
lea edx, [eax - 1]
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x2d14]
test edi, edi
jne 0x4165b3
mov eax, 1
mov dword [esp + 0x18], eax
test ecx, ecx
jne 0x4165cd
test edi, edi
jne 0x4165cd
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 2
jmp 0x4165d5
cmp edx, eax
jae 0x416388
mov eax, dword [esp + 0x14]
mov ecx, eax
inc eax
mov dword [esp + 0x14], eax
xor eax, eax
test ebp, ebp
jle 0x416613
test cl, 1
je 0x4165f9
xor edx, edx
mov dl, byte [esp + eax + 0x44]
mov dl, byte [edx + 0x46a63c]
jmp 0x416605
xor edx, edx
mov dl, byte [esp + eax + 0x44]
mov dl, byte [edx + 0x46a53c]
mov byte [esp + eax + 0x84], dl
shr ecx, 1
inc eax
cmp eax, ebp
jl 0x4165e6
lea eax, [esp + 0x84]
mov byte [esp + ebp + 0x84], 0
push eax
call dword [0x45e0d4]
add esp, 4
test eax, eax
jne 0x41685f
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x41667f
xor eax, eax
test ebp, ebp
jle 0x41665e
lea ecx, [esp + ebp + 0x204]
mov dl, byte [esp + eax + 0x84]
dec ecx
inc eax
cmp eax, ebp
mov byte [ecx], dl
jl 0x41664f
lea eax, [esp + 0x204]
mov byte [esp + ebp + 0x204], 0
push eax
call dword [0x45e0d4]
add esp, 4
test eax, eax
jne 0x416871
mov eax, dword [esi + 0xcc]
test eax, eax
je 0x41673a
lea ecx, [ebp + 1]
lea esi, [esp + 0x84]
mov edx, ecx
lea edi, [esp + 0x104]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 1]
and ecx, 3
xor ebx, ebx
test eax, eax
rep movsb byte es:[edi], byte [esi]
jle 0x41673a
mov ecx, 1
lea eax, [esp + 0x84]
sub ecx, eax
mov dword [esp + 0x40], ecx
lea edi, [esp + ebx + 0x84]
lea esi, [ecx + edi]
cmp esi, ebp
jge 0x416729
mov cl, byte [esp + esi + 0x84]
mov al, byte [edi]
mov byte [esp + ebx + 0x104], cl
mov byte [esp + esi + 0x104], al
cmp byte [esp + ebx + 0x104], al
je 0x416720
lea edx, [esp + 0x104]
push edx
call dword [0x45e0d4]
add esp, 4
test eax, eax
jne 0x41687a
mov al, byte [esp + esi + 0x84]
mov byte [esp + esi + 0x104], al
inc esi
cmp esi, ebp
jl 0x4166d9
mov ecx, dword [esp + 0x40]
mov dl, byte [edi]
lea eax, [ebp - 1]
mov byte [esp + ebx + 0x104], dl
inc ebx
cmp ebx, eax
jl 0x4166cb
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xd0]
test ecx, ecx
je 0x4167da
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jne 0x4167da
lea ecx, [ebp + 1]
lea esi, [esp + 0x84]
mov edx, ecx
lea edi, [esp + 0x184]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp ebp, 1
rep movsb byte es:[edi], byte [esi]
jle 0x4167da
xor esi, esi
mov al, byte [esp + esi + 0x85]
mov byte [esp + esi + 0x184], al
mov al, byte [esp + esi + 0x84]
mov byte [esp + esi + 0x185], al
mov cl, byte [esp + esi + 0x184]
cmp cl, al
je 0x4167ce
lea ecx, [esp + 0x184]
push ecx
call dword [0x45e0d4]
add esp, 4
test eax, eax
jne 0x41688c
mov dl, byte [esp + esi + 0x84]
mov byte [esp + esi + 0x184], dl
inc esi
lea eax, [esi + 1]
cmp eax, ebp
jl 0x416780
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xd4]
test ecx, ecx
je 0x41683b
xor esi, esi
xor edi, edi
test ebp, ebp
jle 0x41681a
mov al, byte [esp + esi + 0x84]
movsx ecx, al
add ecx, 0xffffffbf
cmp ecx, 0x34
ja case.0x416806.66
xor edx, edx
mov dl, byte [ecx + 0x4168d0]
jmp dword [edx*4 + 0x4168c8]
mov byte [esp + edi + 0x284], al
inc edi
inc esi
cmp esi, ebp
jl 0x4167ec
test edi, edi
mov byte [esp + edi + 0x284], 0
je 0x41683b
lea eax, [esp + 0x284]
push eax
call dword [0x45e0d4]
add esp, 4
test eax, eax
jne 0x41689e
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp eax, ecx
jb 0x4165d5
jmp 0x416380
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2cf4
ret 0x10
mov eax, dword [esp + 0x2d08]
lea edx, [esp + 0x84]
push edx
push eax
jmp 0x4168ae
lea ecx, [esp + 0x204]
jmp 0x4168a5
mov ecx, dword [esp + 0x2d08]
lea eax, [esp + 0x104]
push eax
push ecx
jmp 0x4168ae
mov eax, dword [esp + 0x2d08]
lea edx, [esp + 0x184]
push edx
push eax
jmp 0x4168ae
lea ecx, [esp + 0x284]
mov edx, dword [esp + 0x2d08]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x2cf4
ret 0x10