Function at 0x45ab00
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0
cmp dword [0x5133f0], 0
je 0x45ab60
mov dword [0x5133f0], 0
cmp dword [0x515bcc], 0
jne 0x45ab3a
mov dword [0x515bcc], 1
cmp dword [0x515bc4], 0
jne 0x45ab5b
push 0x4000
mov eax, dword [0x515bd0]
push eax
call fcn.0045b630
add esp, 8
mov dword [0x515bc4], eax
call fcn.0045b5e0
mov ecx, 1
test ecx, ecx
je 0x45affa
mov edx, dword [0x515bc8]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
mov cl, byte [0x515bb0]
mov byte [eax], cl
mov edx, dword [ebp - 4]
mov dword [ebp - 0x10], edx
mov eax, dword [0x515bcc]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
mov al, byte [edx*4 + 0x513470]
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0xc]
movsx edx, word [ecx*2 + 0x513428]
test edx, edx
je 0x45abbf
mov eax, dword [ebp - 0xc]
mov dword [0x515bc0], eax
mov ecx, dword [ebp - 4]
mov dword [0x515bb4], ecx
mov edx, dword [ebp - 0xc]
movsx eax, word [edx*2 + 0x5138f0]
movzx ecx, byte [ebp - 0x11]
add eax, ecx
movsx edx, word [eax*2 + 0x513a28]
cmp edx, dword [ebp - 0xc]
je 0x45ac01
mov eax, dword [ebp - 0xc]
movsx ecx, word [eax*2 + 0x513938]
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0x23
jl 0x45abff
movzx edx, byte [ebp - 0x11]
mov al, byte [edx*4 + 0x513870]
mov byte [ebp - 0x11], al
jmp 0x45abbf
mov ecx, dword [ebp - 0xc]
movsx edx, word [ecx*2 + 0x5138f0]
movzx eax, byte [ebp - 0x11]
add edx, eax
movsx ecx, word [edx*2 + 0x513980]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xc]
movsx ecx, word [eax*2 + 0x5138f0]
cmp ecx, 0x3f
jne 0x45ab8f
mov edx, dword [ebp - 0xc]
movsx eax, word [edx*2 + 0x513428]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x45ac6e
mov ecx, dword [0x515bb4]
mov dword [ebp - 4], ecx
mov edx, dword [0x515bc0]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
movsx ecx, word [eax*2 + 0x513428]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x10]
mov dword [0x5171b8], edx
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x10]
mov dword [0x5171c0], eax
mov ecx, dword [ebp - 4]
mov dl, byte [ecx]
mov byte [0x515bb0], dl
mov eax, dword [ebp - 4]
mov byte [eax], 0
mov ecx, dword [ebp - 4]
mov dword [0x515bc8], ecx
mov edx, dword [ebp - 8]
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0x13
ja case.default.0x45acaf
mov eax, dword [ebp - 0x20]
jmp dword [eax*4 + 0x45b000]
mov ecx, dword [ebp - 4]
mov dl, byte [0x515bb0]
mov byte [ecx], dl
mov eax, dword [0x515bb4]
mov dword [ebp - 4], eax
mov ecx, dword [0x515bc0]
mov dword [ebp - 0xc], ecx
jmp 0x45ac3a
mov eax, 0x109
jmp 0x45affa
mov eax, 0x10a
jmp 0x45affa
mov edx, dword [0x5171b8]
push edx
call fcn.00498c5d
add esp, 4
mov dword [0x5171d4], eax
mov eax, 0x101
jmp 0x45affa
mov eax, dword [0x5171b8]
push eax
call fcn.00498c5d
add esp, 4
mov dword [0x5171d4], eax
mov eax, 0x101
jmp 0x45affa
mov ecx, dword [0x5171b8]
push ecx
call fcn.00498c5d
add esp, 4
mov dword [0x5171d4], eax
mov eax, 0x101
jmp 0x45affa
mov edx, dword [0x5171b8]
push edx
call fcn.00498c5d
add esp, 4
mov dword [0x5171d4], eax
mov eax, 0x102
jmp 0x45affa
mov eax, dword [0x5171b8]
movsx eax, byte [eax]
jmp 0x45affa
mov eax, 0x103
jmp 0x45affa
mov eax, 0x104
jmp 0x45affa
mov eax, 0x106
jmp 0x45affa
mov eax, 0x105
jmp 0x45affa
mov eax, 0x107
jmp 0x45affa
mov eax, 0x108
jmp 0x45affa
mov ecx, dword [0x5171b8]
movsx eax, byte [ecx]
jmp 0x45affa
jmp 0x45aff5
push 0x513ad0
call fcn.0045a1f0
add esp, 4
jmp 0x45aff5
mov edx, dword [0x515bd4]
push edx
push 1
mov eax, dword [0x5171c0]
push eax
mov ecx, dword [0x5171b8]
push ecx
call fcn.004952d5
add esp, 0x10
jmp 0x45aff5
xor eax, eax
jmp 0x45affa
mov edx, dword [ebp - 4]
sub edx, dword [0x5171b8]
sub edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 4]
mov cl, byte [0x515bb0]
mov byte [eax], cl
mov edx, dword [0x515bc4]
cmp dword [edx + 0x24], 0
jne 0x45ae8e
mov eax, dword [0x515bc4]
mov ecx, dword [eax + 0x10]
mov dword [0x515bb8], ecx
mov edx, dword [0x515bc4]
mov eax, dword [0x515bd0]
mov dword [edx], eax
mov ecx, dword [0x515bc4]
mov dword [ecx + 0x24], 1
mov edx, dword [0x515bc4]
mov eax, dword [edx + 4]
add eax, dword [0x515bb8]
cmp dword [0x515bc8], eax
ja 0x45af11
mov ecx, dword [0x5171b8]
add ecx, dword [ebp - 0x18]
mov dword [0x515bc8], ecx
call fcn.0045b3a0
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
push edx
call fcn.0045b490
add esp, 4
mov dword [ebp - 0x1c], eax
mov eax, dword [0x5171b8]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x1c], 0
je 0x45aefe
mov ecx, dword [0x515bc8]
add ecx, 1
mov dword [0x515bc8], ecx
mov edx, dword [0x515bc8]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
jmp 0x45ab8f
mov ecx, dword [0x515bc8]
mov dword [ebp - 4], ecx
jmp 0x45ac3a
call fcn.0045b050
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x45af86
cmp dword [ebp - 0x24], 1
je 0x45af34
cmp dword [ebp - 0x24], 2
je 0x45afb3
jmp 0x45afe6
mov dword [0x515bbc], 0
call fcn.0045aaa0
test eax, eax
je 0x45af6d
mov edx, dword [0x5171b8]
mov dword [0x515bc8], edx
mov eax, dword [0x515bcc]
sub eax, 1
cdq
sub eax, edx
sar eax, 1
add eax, 0x13
mov dword [ebp - 8], eax
jmp 0x45ac9c
cmp dword [0x515bbc], 0
jne 0x45af84
mov eax, dword [0x515bd0]
push eax
call fcn.0045b540
add esp, 4
jmp 0x45afe6
mov ecx, dword [0x5171b8]
add ecx, dword [ebp - 0x18]
mov dword [0x515bc8], ecx
call fcn.0045b3a0
mov dword [ebp - 0xc], eax
mov edx, dword [0x515bc8]
mov dword [ebp - 4], edx
mov eax, dword [0x5171b8]
mov dword [ebp - 0x10], eax
jmp 0x45ab8f
mov ecx, dword [0x515bc4]
mov edx, dword [ecx + 4]
add edx, dword [0x515bb8]
mov dword [0x515bc8], edx
call fcn.0045b3a0
mov dword [ebp - 0xc], eax
mov eax, dword [0x515bc8]
mov dword [ebp - 4], eax
mov ecx, dword [0x5171b8]
mov dword [ebp - 0x10], ecx
jmp 0x45ac3a
jmp 0x45aff5
push str.fatal_flex_scanner_internal_error__no_action_found
call fcn.0045b980
add esp, 4
jmp 0x45ab60
mov esp, ebp
pop ebp
ret