Function at 0x425ec4
Capabilities:
Get file size

Disassembly:
sub esp, 0x34
or dword [esp + 8], 0xffffffff
push ebx
push ebp
push esi
push edi
push 0x238e
xor ebx, ebx
or esi, 0xffffffff
push 0x640
mov dword [esp + 0x40], ebx
call fcn.00401286
mov ebp, eax
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x4268e2
push dword [esp + 0x4c]
lea eax, [ebp + 0x410]
mov dword [esp + 0x40], eax
add eax, 0x50
mov dword [esp + 0x18], eax
add eax, 0x50
mov dword [esp + 0x24], eax
lea edx, [eax + 0x50]
mov dword [esp + 0x14], edx
call fcn.00403edb
mov dword [esp + 0x2c], eax
cmp eax, esi
jne 0x425f4c
push dword [esp + 0x4c]
push 2
call fcn.00404ac5
push eax
push ebp
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push ebx
push ebp
push dword [esp + 0x50]
call fcn.00403461
jmp 0x4268de
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
push 0x238f
lea eax, [esi + 0x64]
imul eax, eax, 3
push eax
call fcn.00401286
mov dword [esp + 0x38], eax
test eax, eax
je 0x4268de
push esi
lea edi, [eax + 0x64]
push eax
add edi, esi
mov esi, dword [esp + 0x34]
push esi
call fcn.00403eb1
test eax, eax
jns 0x425fae
push dword [esp + 0x4c]
push 4
call fcn.00404ac5
push eax
push ebp
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push ebx
push ebp
push dword [esp + 0x50]
call fcn.00403461
jmp 0x4268e2
mov ecx, dword [esp + 0x38]
push esi
mov byte [eax + ecx], bl
call fcn.00403e76
push dword [esp + 0x50]
or dword [esp + 0x30], 0xffffffff
call fcn.00403e93
mov edx, eax
mov dword [esp + 0x18], edx
cmp edx, 0xffffffff
jne 0x425fdf
push dword [esp + 0x50]
push 3
jmp 0x425f2c
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x1c], ebx
mov byte [esi + 0xf0], bl
mov byte [esi + 0xa0], bl
mov byte [esi + 0x50], bl
mov byte [edi], bl
mov dword [esp + 0x30], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x50], ebx
mov byte [eax + 0x50], bl
mov ecx, ebp
mov al, byte [ecx]
inc ecx
cmp al, 0x20
je 0x426019
cmp al, 9
je 0x426019
cmp al, 0xd
je 0x42602c
cmp al, 0xa
jne 0x426049
cmp dword [esp + 0x28], ebx
jne 0x426038
cmp dword [esp + 0x24], ebx
je 0x426049
xor eax, eax
inc eax
push eax
push edi
push edx
call fcn.00408519
mov byte [edi], bl
mov dword [esp + 0x24], ebx
push ebp
call fcn.00407164
cmp byte [eax], bl
je 0x4268c3
push 0x50
push dword [esp + 0x18]
push eax
call fcn.004259df
mov ebp, eax
mov eax, dword [esp + 0x14]
cmp byte [eax], bl
je 0x42623f
cmp byte [edi], bl
jne 0x426138
push str.switch
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x4260aa
mov ecx, dword [esp + 0x1c]
mov al, byte [esp + 0x50]
inc ecx
inc al
mov dword [esp + 0x1c], ecx
mov byte [ecx + esi + 0xa0], al
mov byte [ecx + esi + 0xf0], bl
mov byte [ecx + esi + 0x50], bl
push dword [esp + 0x14]
call fcn.00425e94
test eax, eax
je 0x4260c9
mov eax, dword [esp + 0x1c]
cmp byte [eax + esi + 0x50], bl
je 0x4260c9
dec dword [esp + 0x50]
mov byte [eax + esi + 0x50], bl
cmp byte [esp + 0x48], 0x7b
je 0x4260e9
push dword [esp + 0x14]
call fcn.00425e94
test eax, eax
je 0x4260e9
push 0x4284f4
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp dword [esp + 0x28], ebx
je 0x4260fe
cmp byte [ebp], 0x3a
je 0x4260fe
mov esi, dword [esp + 0x50]
add esi, 2
jmp 0x426102
mov esi, dword [esp + 0x50]
push edi
call fcn.00404fb1
push eax
push esi
push ebx
call fcn.004272a7
push dword [esp + 0x14]
call fcn.00425e94
mov esi, dword [esp + 0x20]
test eax, eax
je 0x426148
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x10]
inc eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov byte [ecx + edx + 0x50], al
jmp 0x426148
mov esi, dword [esp + 0x20]
cmp byte [esi], bl
je 0x42614c
push 0x20
push edi
call fcn.00401000
mov eax, dword [esp + 0x14]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp dword [esp + 0x28], ebx
je 0x426193
xor eax, eax
inc eax
push eax
push edi
call fcn.00407164
push eax
call fcn.0040660b
cmp byte [eax], bl
jne 0x4261c5
cmp byte [ebp], 0x3a
je 0x4261c5
push edi
call fcn.00404fb1
push eax
push 0x18
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push ebx
call fcn.004272ed
mov eax, dword [esp + 0x14]
mov byte [eax], bl
jmp 0x4261c9
cmp dword [esp + 0x24], ebx
je 0x4261c5
push 0x429784
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x4261c5
cmp byte [ebp], 0x28
je 0x4261c5
push edi
call fcn.00404fb1
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push edi
call esi
push eax
push edi
call esi
jmp 0x426184
mov eax, dword [esp + 0x14]
push 0x429690
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
mov ecx, dword [esp + 0x34]
test eax, eax
push 1
pop eax
push str._asm
push dword [esp + 0x18]
cmove ecx, eax
mov dword [esp + 0x3c], ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
mov ecx, dword [esp + 0x28]
test eax, eax
push 1
pop eax
cmove ecx, eax
push edi
mov dword [esp + 0x2c], ecx
call fcn.00407164
mov esi, eax
push str.pragma
push esi
call fcn.00402727
test eax, eax
jne 0x426236
inc eax
push eax
push eax
push esi
call fcn.0040660b
push eax
call fcn.0040660b
cmp byte [eax], bl
jne 0x426236
push 0x20
push edi
call fcn.00401000
mov byte [esp + 0x4c], bl
jmp 0x4268a0
mov al, byte [ebp]
lea esi, [ebp + 1]
mov dl, byte [esi]
mov byte [esp + 0x4c], al
movsx eax, al
cmp eax, 0x2f
jg 0x42653f
je 0x4263a2
sub eax, 0x22
je 0x42639a
sub eax, 1
je 0x426379
push 4
pop ecx
sub eax, ecx
je 0x426358
sub eax, 1
je 0x4262ea
sub eax, 1
je 0x4262aa
sub eax, 3
jne 0x426849
push 0x2c
push edi
call fcn.00401000
cmp dword [esp + 0x28], ebx
jne 0x4262a3
push 0x20
push edi
call fcn.00401000
mov ebp, esi
jmp 0x4268a0
push 0x29
push edi
call fcn.00401000
sub dword [esp + 0x30], 1
mov ebp, esi
jne 0x4268a0
mov esi, dword [esp + 0x10]
cmp byte [esi], bl
je 0x4262df
push ebp
call fcn.00427291
push eax
call fcn.004055ae
test eax, eax
je 0x4262df
push 0x20
push edi
call fcn.00401000
mov byte [esi], bl
mov dword [esp + 0x34], ebx
jmp 0x4268a4
mov ecx, dword [esp + 0x30]
mov eax, ecx
mov ebp, dword [esp + 0x20]
inc ecx
mov dword [esp + 0x30], ecx
test eax, eax
jne 0x426309
mov edx, dword [esp + 0x10]
push ebp
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x429684
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x426349
push 0x429690
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x426349
push str.while
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x426349
push str.switch
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x426351
push 0x20
push edi
call fcn.00401000
push 0x28
jmp 0x42629d
push ebp
call fcn.00427233
mov esi, eax
mov eax, esi
sub eax, ebp
inc eax
push eax
push ebp
push edi
call fcn.00404fb1
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
jmp 0x4262a3
cmp byte [edi], bl
jne 0x426858
push edi
push dword [esp + 0x54]
xor eax, eax
inc eax
push ebx
mov dword [esp + 0x30], eax
call fcn.004272a7
push 0x23
jmp 0x42629d
push ebp
call fcn.00427262
jmp 0x42635e
cmp dl, 0x2a
jne 0x426483
push ebp
call fcn.004271cd
mov esi, eax
sub esi, ebp
cmp dword [esp + 0x54], ebx
jne 0x42689e
push 0xa
push esi
push ebp
call fcn.00406ded
test eax, eax
jle 0x4263f1
lea eax, [esi + 1]
push eax
push ebp
push edi
call fcn.00404fb1
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
xor eax, eax
inc eax
push eax
push edi
push dword [esp + 0x20]
call fcn.00408519
jmp 0x42647c
lea ecx, [esi + ebp]
mov al, byte [ecx]
inc ecx
cmp al, 0x20
je 0x4263f4
cmp al, 9
je 0x4263f4
cmp al, 0xd
je 0x42641e
cmp al, 0xa
je 0x42641e
lea eax, [esi + 1]
push eax
push ebp
push edi
call fcn.00404fb1
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
jmp 0x42689e
push edi
cmp byte [edi], bl
je 0x42643b
call fcn.00404fb1
push eax
push 0x50
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push ebx
call fcn.004272ed
jmp 0x426445
push dword [esp + 0x54]
push ebx
call fcn.004272a7
push 0x2f
push edi
call fcn.00401000
push 0x2f
push edi
call fcn.00401000
lea eax, [esi - 3]
push eax
lea eax, [ebp + 2]
push eax
push edi
call fcn.00404fb1
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
xor eax, eax
inc eax
push eax
push edi
push dword [esp + 0x20]
call fcn.00408519
mov dword [esp + 0x24], ebx
mov byte [edi], bl
jmp 0x42689e
cmp dl, 0x2f
jne 0x4264ee
push ebp
call fcn.004271f5
mov esi, eax
sub esi, ebp
cmp dword [esp + 0x54], ebx
jne 0x42689e
push edi
cmp byte [edi], bl
je 0x4264b9
call fcn.00404fb1
push eax
push 0x50
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push ebx
call fcn.004272ed
jmp 0x4264c3
push dword [esp + 0x54]
push ebx
call fcn.004272a7
lea eax, [esi + 1]
push eax
push ebp
push edi
call fcn.00404fb1
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
xor eax, eax
inc eax
push eax
push edi
push dword [esp + 0x20]
call fcn.00408519
mov byte [edi], bl
mov dword [esp + 0x24], ebx
jmp 0x42689e
cmp byte [esp + 0x48], 0x29
je 0x426538
mov eax, dword [esp + 0x20]
cmp byte [eax], bl
jne 0x426538
mov dh, bl
jmp 0x42651b
cmp dl, 0x2f
jne 0x42650b
cmp dh, 0x5c
jne 0x42652c
xor ecx, ecx
movzx eax, dl
cmp dh, 0x5c
cmovne ecx, eax
inc esi
mov dh, cl
mov dl, byte [esi]
test dl, dl
jne 0x426501
jmp 0x426360
cmp al, 0x7a
ja 0x426360
inc esi
mov al, byte [esi]
cmp al, 0x61
jae 0x426524
jmp 0x426360
push 0x2f
jmp 0x42629d
sub eax, 0x3a
je 0x4267f8
sub eax, 1
je 0x4267a0
sub eax, 0x21
je 0x426768
sub eax, 0x1f
je 0x42665f
dec eax
sub eax, 1
jne 0x426849
cmp dword [esp + 0x24], ebx
je 0x42657a
push 0x7d
jmp 0x42629d
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x50]
movzx eax, byte [edx + ebp + 0x50]
cmp eax, ecx
jne 0x42659d
cmp byte [edx + ebp + 0xf0], bl
jne 0x42659d
dec ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], ebx
cmp byte [edi], bl
je 0x4265b7
xor eax, eax
inc eax
push eax
push edi
push dword [esp + 0x20]
call fcn.00408519
mov ecx, dword [esp + 0x50]
push edi
push ecx
push ebx
call fcn.004272a7
push 0x7d
push edi
call fcn.00401000
push esi
call fcn.00407164
mov ebp, eax
mov cl, byte [ebp]
mov byte [esp + 0x48], cl
cmp cl, 0x3b
jne 0x4265df
push 0x3b
jmp 0x4265e6
cmp cl, 0x2c
jne 0x4265f1
push 0x2c
push edi
call fcn.00401000
mov cl, byte [esp + 0x48]
inc ebp
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x50]
movzx eax, byte [eax + esi + 0x50]
cmp eax, edx
mov eax, dword [esp + 0x1c]
jne 0x42661c
cmp byte [eax + esi + 0xf0], bl
je 0x42661c
mov byte [eax + esi + 0xf0], bl
jmp 0x426635
movzx eax, byte [eax + esi + 0xa0]
cmp eax, edx
jne 0x42662c
dec dword [esp + 0x1c]
test edx, edx
jle 0x426637
dec edx
mov dword [esp + 0x50], edx
test edx, edx
je 0x426642
cmp cl, 0x2f
je 0x4268a4
xor eax, eax
push 4
inc eax
test edx, edx
pop ecx
cmove eax, ecx
push eax
push edi
push dword [esp + 0x20]
call fcn.00408519
mov byte [edi], bl
jmp 0x4268a4
cmp dword [esp + 0x24], ebx
je 0x42666c
push 0x7b
jmp 0x42629d
push esi
call fcn.00427291
mov ebp, dword [esp + 0x20]
push 0x429694
push ebp
mov byte [esp + 0x50], al
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x4266ca
push 0x20
push edi
call fcn.00401000
push 0x20
push edi
call fcn.00401000
push 0x7b
push edi
call fcn.00401000
cmp byte [esp + 0x48], 0x2f
je 0x4266b9
xor eax, eax
inc eax
push eax
push edi
push dword [esp + 0x20]
call fcn.00408519
mov byte [edi], bl
inc dword [esp + 0x50]
push esi
call fcn.00407164
mov ebp, eax
jmp 0x4268a0
push str.else
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x42669a
push str._asm
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x42669a
push str.return
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x42669a
mov ebp, dword [esp + 0x18]
cmp byte [edi], bl
je 0x42670d
xor eax, eax
inc eax
push eax
push edi
push ebp
call fcn.00408519
push dword [esp + 0x20]
call fcn.00425e94
test eax, eax
je 0x426732
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov edx, dword [esp + 0x10]
inc ecx
mov byte [eax + edx + 0xf0], cl
mov eax, dword [esp + 0x50]
jmp 0x42673b
mov eax, dword [esp + 0x50]
inc eax
mov dword [esp + 0x50], eax
push edi
push eax
push ebx
call fcn.004272a7
push 0x7b
push edi
call fcn.00401000
cmp byte [esp + 0x48], 0x2f
je 0x4266bd
xor eax, eax
inc eax
push eax
push edi
push ebp
call fcn.00408519
mov byte [edi], bl
jmp 0x4266bd
cmp dl, 0xd
je 0x426776
cmp dl, 0xa
jne 0x426849
push 0x5c
push edi
call fcn.00401000
xor eax, eax
inc eax
push eax
push edi
push dword [esp + 0x20]
call fcn.00408519
mov eax, dword [esp + 0x50]
push edi
inc eax
mov byte [edi], bl
push eax
push ebx
call fcn.004272a7
jmp 0x4266bd
push 0x3b
push edi
call fcn.00401000
mov ebp, esi
push ebp
call fcn.00427291
cmp dword [esp + 0x24], ebx
je 0x4267c3
push 0x20
push edi
call fcn.00401000
jmp 0x4268a0
cmp dword [esp + 0x34], ebx
je 0x4267db
cmp al, 0x29
je 0x4268a0
cmp al, 0x3b
je 0x4268a0
jmp 0x4267b6
cmp al, 0x2f
je 0x4268a0
xor eax, eax
inc eax
push eax
push edi
push dword [esp + 0x20]
call fcn.00408519
mov byte [edi], bl
jmp 0x4268a0
push 0x50
push dword [esp + 0x40]
push edi
call fcn.00407164
push eax
call fcn.004259df
push str.case
push dword [esp + 0x40]
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x42682f
push dword [esp + 0x3c]
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x426849
push esi
call fcn.00427291
cmp al, 0x2f
je 0x426849
cmp al, 0x3b
je 0x426849
push 0x3a
push edi
call fcn.00401000
mov ebp, esi
jmp 0x4267e3
cmp byte [edi], bl
jne 0x426858
push edi
push dword [esp + 0x54]
push ebx
call fcn.004272a7
mov al, byte [esp + 0x4c]
xor ecx, ecx
inc ecx
mov esi, ecx
cmp al, 0x26
je 0x426869
cmp al, 0x7c
jne 0x42687d
mov esi, ebx
inc esi
cmp byte [esi + ebp], al
je 0x42686b
cmp esi, ecx
jle 0x42687d
push 0x20
push edi
call fcn.00401000
lea eax, [esi + 1]
push eax
push ebp
push edi
call fcn.00404fb1
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
xor eax, eax
inc eax
cmp esi, eax
jle 0x42689e
push 0x20
push edi
call fcn.00401000
add ebp, esi
mov esi, dword [esp + 0x10]
push dword [esp + 0x14]
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov al, byte [esp + 0x4c]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x48], al
jmp 0x426017
cmp byte [edi], bl
je 0x4268d5
xor eax, eax
inc eax
push eax
push edi
push dword [esp + 0x20]
call fcn.00408519
mov ebp, dword [esp + 0x40]
xor eax, eax
lea ebx, [eax + 1]
mov esi, dword [esp + 0x2c]
push esi
call fcn.00403e76
push dword [esp + 0x18]
call fcn.00403e76
push ebp
call fcn.00404070
push dword [esp + 0x38]
call fcn.00404070
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x34
ret 0x10