Function at 0x405a10
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ecx, dword [0x42dcf0]
mov dword [esp + 4], 4
mov ebx, dword [0x42e270]
mov dword [esp], ecx
inc ebx
call fcn.0040ddf0
inc dword [0x42eac0]
xor edx, edx
mov dword [0x42dd90], edx
mov edx, dword [0x42f330]
mov dword [esp + 0x18], eax
test edx, edx
je 0x4060fe
mov dword [esp + 0x24], ebx
mov ebp, dword [0x429c70]
lea esi, [esp + 0x20]
mov dword [esp + 0x20], 0
mov edi, dword [0x42ab10]
mov ebx, dword [0x429c30]
mov dword [edi + ebp*4], 1
mov eax, dword [0x429c70]
mov dword [ebx + eax*4], esi
mov eax, dword [0x429bd0]
cmp eax, 1
jl 0x4060f4
mov dword [esp + 4], 0x405978
mov edx, dword [0x42ac50]
inc eax
mov dword [esp + 8], eax
test edx, edx
je 0x4060ea
mov eax, str.static_yyconst_long_int__s__d___n_______0__n
mov dword [esp], eax
mov ebx, 1
mov ebp, 1
call fcn.0040ebc0
cmp ebx, dword [0x42abb0]
jg 0x405b8d
jmp 0x405ae0
mov esi, dword [esp + 0x18]
mov ecx, dword [0x42ab10]
mov dword [esi + ebx*4], ebp
mov edi, dword [ecx + ebx*4]
test edi, edi
je 0x405b80
mov esi, dword [0x429c30]
mov edx, dword [0x42dde0]
mov ecx, dword [esi + ebx*4]
test edx, edx
mov dword [esp + 0x1c], ecx
jne 0x4060c8
mov esi, 1
cmp esi, edi
jg 0x405b80
lea esi, [esi]
mov ecx, dword [0x429c90]
inc ebp
mov eax, dword [esp + 0x1c]
test ecx, ecx
mov edx, dword [eax + esi*4]
je 0x405b60
test dh, 0x40
jne 0x405b60
test edx, edx
jle 0x405b60
cmp edx, dword [0x42e270]
jg 0x405b60
mov ecx, dword [0x42dd60]
cmp dword [ecx + edx*4], 1
je 0x4060bd
lea esi, [esi]
lea edi, [edi]
mov dword [esp], edx
call fcn.0040e780
mov edx, dword [0x42dde0]
test edx, edx
jne 0x406030
inc esi
cmp esi, edi
jle 0x405b20
nop
lea esi, [esi]
inc ebx
cmp ebx, dword [0x42abb0]
jle 0x405ae0
mov edi, dword [esp + 0x18]
mov dword [edi + ebx*4], ebp
call fcn.0040e280
mov ebx, dword [0x42f330]
mov eax, dword [0x42abb0]
test ebx, ebx
lea esi, [eax + 2]
je 0x405bae
lea esi, [eax + 3]
mov dword [esp + 8], esi
mov eax, dword [0x42ac50]
mov dword [esp + 4], 0x405983
test eax, eax
je 0x406021
mov eax, str.static_yyconst_long_int__s__d___n_______0__n
mov dword [esp], eax
mov ebx, 1
call fcn.0040ebc0
cmp ebx, dword [0x42abb0]
jle 0x405fc2
mov esi, dword [esp + 0x18]
mov edi, dword [esi + ebx*4]
mov dword [esp], edi
call fcn.0040e780
mov eax, dword [0x42f330]
test eax, eax
jne 0x405fad
call fcn.0040e280
mov ebx, dword [0x42a190]
test ebx, ebx
jne 0x405fa3
mov ecx, dword [0x42f370]
test ecx, ecx
je 0x405cbf
mov edi, dword [0x42dde0]
test edi, edi
jne 0x405f75
mov dword [esp + 4], 0x40598d
mov edx, dword [0x42ddb0]
mov ebx, 1
mov dword [esp], str.static_yyconst_int__s__d___n_______0__n
inc edx
mov dword [esp + 8], edx
call fcn.0040ebc0
cmp ebx, dword [0x42ddb0]
jg 0x405cba
lea esi, [esi]
mov ebp, dword [0x42dde0]
test ebp, ebp
je 0x405c9a
mov eax, dword [ebx*4 + 0x42de20]
test eax, eax
js 0x405f6e
mov dword [esp + 0xc], eax
mov ecx, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x405995
add ecx, 0x40
mov dword [esp], ecx
call sub.msvcrt.dll_fprintf
mov eax, dword [ebx*4 + 0x42de20]
test eax, eax
js 0x405f67
mov dword [esp], eax
inc ebx
call fcn.0040e780
cmp ebx, dword [0x42ddb0]
jle 0x405c60
call fcn.0040e280
mov dword [esp + 4], 0x40599e
mov edi, dword [0x42e240]
mov ebx, dword [0x42abb0]
add edi, ebx
lea ebp, [edi + 1]
cmp dword [0x42f360], 0x7fbb
mov dword [esp + 8], ebp
jg 0x405cf6
mov esi, dword [0x42ac50]
test esi, esi
je 0x405f5d
mov eax, str.static_yyconst_long_int__s__d___n_______0__n
mov dword [esp], eax
mov ebx, 1
call fcn.0040ebc0
cmp ebx, dword [0x42abb0]
jg 0x405d54
mov ecx, dword [0x429ca0]
mov esi, dword [0x42a9f0]
cmp dword [ecx + ebx*4], 0xffff8002
mov edx, dword [esi + ebx*4]
je 0x405f50
cmp edx, 0xffff8002
je 0x405f46
test edx, edx
js 0x405f30
mov edx, dword [ecx + ebx*4]
inc ebx
mov dword [esp], edx
call fcn.0040e780
cmp ebx, dword [0x42abb0]
jle 0x405d10
mov esi, dword [0x429ca0]
mov ecx, dword [esi + ebx*4]
inc ebx
mov dword [esp], ecx
call fcn.0040e780
cmp ebx, edi
jle 0x405f00
call fcn.0040e280
mov dword [esp + 8], ebp
cmp edi, 0x7fbb
mov dword [esp + 4], 0x4059a6
jg 0x405d95
mov ebp, dword [0x42ac50]
test ebp, ebp
je 0x405ef0
mov eax, str.static_yyconst_long_int__s__d___n_______0__n
mov dword [esp], eax
mov ebx, 1
call fcn.0040ebc0
cmp ebx, edi
jle 0x405ed5
call fcn.0040e280
mov dword [esp + 4], 0x4059ad
mov ebx, dword [0x42f360]
inc ebx
mov dword [esp + 8], ebx
cmp edi, 0x7fbb
jg 0x405ddc
mov eax, dword [0x42ac50]
test eax, eax
je 0x405ecb
mov eax, str.static_yyconst_long_int__s__d___n_______0__n
mov dword [esp], eax
mov ebx, 1
call fcn.0040ebc0
cmp ebx, dword [0x42f360]
jg 0x405e3b
lea esi, [esi]
lea edi, [edi]
mov esi, dword [0x42eab0]
mov ebp, dword [esi + ebx*4]
test ebp, ebp
je 0x405ec0
mov edx, dword [0x42ac00]
mov eax, dword [edx + ebx*4]
test eax, eax
jne 0x405e27
mov ecx, dword [0x42b480]
mov dword [edx + ebx*4], ecx
mov ebp, dword [edx + ebx*4]
inc ebx
mov dword [esp], ebp
call fcn.0040e780
cmp ebx, dword [0x42f360]
jle 0x405e00
call fcn.0040e280
mov dword [esp + 4], 0x4059b4
mov edx, dword [0x42f360]
inc edx
mov dword [esp + 8], edx
cmp edi, 0x7fbb
jg 0x405e65
mov edi, dword [0x42ac50]
test edi, edi
je 0x405eb4
mov eax, str.static_yyconst_long_int__s__d___n_______0__n
mov dword [esp], eax
mov ebx, 1
call fcn.0040ebc0
cmp ebx, dword [0x42f360]
jg 0x405ea7
nop
mov edx, dword [0x42eab0]
mov eax, dword [edx + ebx*4]
test eax, eax
jne 0x405e96
inc dword [0x42dd90]
mov eax, dword [edx + ebx*4]
mov dword [esp], eax
inc ebx
call fcn.0040e780
cmp ebx, dword [0x42f360]
jle 0x405e80
call fcn.0040e280
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, str.static_yyconst_short_int__s__d___n_______0__n
jmp 0x405e6a
mov edx, dword [0x42ac00]
jmp 0x405e1e
mov eax, str.static_yyconst_short_int__s__d___n_______0__n
jmp 0x405de1
mov edx, dword [0x42a9f0]
mov ecx, dword [edx + ebx*4]
inc ebx
mov dword [esp], ecx
call fcn.0040e780
cmp ebx, edi
jle 0x405ed5
jmp 0x405daf
mov eax, str.static_yyconst_short_int__s__d___n_______0__n
jmp 0x405d9a
mov esi, dword [0x429ca0]
mov edx, dword [esi + ebx*4]
mov dword [esp], edx
call fcn.0040e780
mov eax, dword [0x42b480]
mov ecx, dword [0x42a9f0]
mov dword [ecx + ebx*4], eax
inc ebx
cmp ebx, edi
jle 0x405f00
jmp 0x405d6e
inc dword [0x42dd50]
mov eax, dword [0x42abb0]
sub eax, edx
inc eax
mov dword [esi + ebx*4], eax
jmp 0x405d40
mov eax, dword [0x42b480]
jmp 0x405f3e
mov eax, dword [0x42f8a0]
mov dword [ecx + ebx*4], eax
jmp 0x405d2c
mov eax, str.static_yyconst_short_int__s__d___n_______0__n
jmp 0x405cfb
neg eax
jmp 0x405ca9
neg eax
jmp 0x405c79
mov dword [esp + 8], 0x1c
mov esi, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 1
mov dword [esp], 0x4059bb
add esi, 0x40
mov dword [esp + 0xc], esi
call sub.msvcrt.dll_fwrite
jmp 0x405c30
call fcn.00403b90
jmp 0x405c14
mov ebp, dword [esp + 0x18]
mov edx, dword [ebp + ebx*4]
mov dword [esp], edx
call fcn.0040e780
jmp 0x405c01
mov esi, dword [esp + 0x18]
mov edi, dword [esi + ebx*4]
mov dword [esp], edi
call fcn.0040e780
mov ebp, dword [0x42f330]
test ebp, ebp
jne 0x405ff0
mov ecx, dword [0x42dde0]
test ecx, ecx
je 0x405ff0
mov edx, dword [esp + 0x18]
mov eax, dword [edx + ebx*4]
test eax, eax
jne 0x405ffe
inc ebx
cmp ebx, dword [0x42abb0]
jle 0x405fc2
jmp 0x405be5
mov dword [esp + 0xc], eax
mov ebp, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x4059d8
add ebp, 0x40
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
jmp 0x405ff0
mov eax, str.static_yyconst_short_int__s__d___n_______0__n
jmp 0x405bcc
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + esi*4]
mov dword [esp + 4], 0x4059f2
mov dword [esp + 8], ecx
mov ecx, dword [sym.imp.msvcrt.dll__iob]
add ecx, 0x40
mov dword [esp], ecx
call sub.msvcrt.dll_fprintf
cmp esi, edi
jl 0x40608f
mov edx, dword [sym.imp.msvcrt.dll__iob]
lea ecx, [edx + 0x40]
mov eax, dword [ecx + 4]
dec eax
test eax, eax
mov dword [ecx + 4], eax
js 0x40607a
mov ecx, dword [edx + 0x40]
mov byte [ecx], 0xa
inc dword [edx + 0x40]
jmp 0x405b76
mov dword [esp + 4], ecx
mov dword [esp], 0xa
call sub.msvcrt.dll__flsbuf
jmp 0x405b76
mov dword [esp + 8], 2
mov edx, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 1
mov dword [esp], 0x4059f7
add edx, 0x40
mov dword [esp + 0xc], edx
call sub.msvcrt.dll_fwrite
jmp 0x405b76
or edx, 0x2000
jmp 0x405b60
mov dword [esp + 8], ebx
mov edx, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], 0x4059fa
add edx, 0x40
mov dword [esp], edx
call sub.msvcrt.dll_fprintf
jmp 0x405b13
mov eax, str.static_yyconst_short_int__s__d___n_______0__n
jmp 0x405ab3
mov eax, 1
jmp 0x405a93
mov edx, dword [0x429c30]
mov ebp, dword [0x429c70]
mov dword [edx + ebp*4], ebx
mov ebx, 1
cmp ebx, dword [0x42abb0]
jg 0x406133
lea esi, [esi]
mov ecx, dword [edx + ebx*4]
mov esi, dword [esp + 0x18]
mov dword [esi + ebx*4], ecx
inc ebx
cmp ebx, dword [0x42abb0]
jle 0x406120
mov edx, dword [esp + 0x18]
mov dword [edx + ebx*4], 0
jmp 0x405b99