Function at 0x10028b30
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
sub esp, 0x10
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
cmp dword [esi + 0x28], 0
mov dword [esi + 0x5c], eax
jne 0x10028be3
cmp dword [esi + 0x2c], 0
mov dword [esi + 0x28], 1
jne 0x10028b60
mov dword [esi + 0x2c], 1
cmp dword [esi + 4], 0
jne 0x10028b73
push 0
call fcn.10038193
add esp, 4
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
jne 0x10028b86
push 1
call fcn.10038193
add esp, 4
mov dword [esi + 8], eax
mov edi, dword [esi + 0x14]
mov edx, dword [esi + 0xc]
test edi, edi
je 0x10028b95
mov eax, dword [edi + edx*4]
jmp 0x10028b97
xor eax, eax
test eax, eax
jne 0x10028bc1
push esi
call fcn.10028a50
push esi
push 0x4000
push dword [esi + 4]
call fcn.10028870
mov edx, dword [esi + 0xc]
add esp, 0x10
mov ecx, dword [esi + 0x14]
mov dword [ecx + edx*4], eax
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0x14]
mov eax, dword [edi + edx*4]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x1c], eax
mov eax, dword [edi + edx*4]
mov ecx, dword [eax + 8]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x50], ecx
mov eax, dword [edi + edx*4]
mov eax, dword [eax]
mov dword [esi + 4], eax
mov al, byte [ecx]
mov byte [esi + 0x18], al
mov edi, dword [esi + 0x24]
mov al, byte [esi + 0x18]
mov dword [ebp + 8], edi
mov byte [edi], al
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x10], edi
nop dword [eax]
nop dword [eax + eax]
movzx eax, byte [edi]
lea edx, [ecx + ecx]
cmp word [edx + 0x10068470], 0
mov bl, byte [eax + 0x100684d0]
je 0x10028c1c
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], edi
movzx eax, word [edx + 0x100685e8]
movzx edi, bl
add eax, edi
movsx eax, word [eax*2 + 0x10068798]
cmp eax, ecx
je 0x10028c61
movsx ecx, word [edx + 0x10068650]
cmp ecx, 0x2d
jl 0x10028c46
mov bl, byte [edi + 0x100685d0]
lea edx, [ecx + ecx]
movzx edi, bl
movzx eax, word [edx + 0x100685e8]
add eax, edi
movsx eax, word [eax*2 + 0x10068798]
cmp eax, ecx
jne 0x10028c34
movzx ecx, word [ecx*2 + 0x100685e8]
mov edi, dword [ebp - 0x10]
movzx eax, bl
inc edi
add ecx, eax
mov dword [ebp - 0x10], edi
movzx ecx, word [ecx*2 + 0x100686b8]
cmp ecx, 0x2c
jne 0x10028c00
mov edx, dword [ebp + 8]
mov ebx, dword [esi + 0x44]
mov eax, dword [esi + 0x40]
nop
movsx edi, word [eax*2 + 0x10068470]
mov eax, ebx
sub eax, edx
mov dword [esi + 0x50], edx
mov dword [esi + 0x20], eax
mov al, byte [ebx]
mov byte [esi + 0x18], al
mov byte [ebx], 0
mov dword [esi + 0x24], ebx
cmp edi, 0x1e
je 0x10028cf0
cmp dword [edi*4 + 0x10068878], 0
je 0x10028cf0
xor edx, edx
cmp dword [esi + 0x20], edx
jbe 0x10028cf0
mov eax, dword [esi + 0x50]
cmp byte [edx + eax], 0xa
jne 0x10028ce8
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
mov eax, dword [eax + ecx*4]
inc dword [eax + 0x20]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x24], 0
inc edx
cmp edx, dword [esi + 0x20]
jb 0x10028cc3
nop
cmp edi, 0x20
ja case.default.0x10028cf9
jmp dword [edi*4 + 0x1002957c]
mov eax, ebx
sub eax, dword [esi + 0x50]
mov dword [ebp - 0x10], eax
mov al, byte [esi + 0x18]
mov byte [ebx], al
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
mov edi, dword [ecx + eax*4]
lea edx, [ecx + eax*4]
cmp dword [edi + 0x2c], 0
jne 0x10028d42
mov eax, dword [edi + 0x10]
mov dword [esi + 0x1c], eax
mov ecx, dword [edx]
mov eax, dword [esi + 4]
mov dword [ecx], eax
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x2c], 1
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + eax*4]
push esi
mov eax, dword [eax + 4]
add eax, dword [esi + 0x1c]
cmp dword [esi + 0x24], eax
jbe 0x10028db5
call fcn.10029960
add esp, 4
sub eax, 0
je 0x10028e70
sub eax, 1
jne 0x10028d83
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x2c]
dec eax
cdq
sub eax, edx
mov edi, eax
sar edi, 1
add edi, 0x1f
jmp 0x10028cf0
sub eax, 1
jne 0x10028be3
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
push esi
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 4]
add eax, dword [esi + 0x1c]
mov dword [esi + 0x24], eax
call fcn.10029cb0
mov edx, dword [esi + 0x50]
add esp, 4
mov ebx, dword [esi + 0x24]
mov dword [ebp + 8], edx
jmp 0x10028c90
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi + 0x50]
dec ecx
add eax, ecx
mov dword [esi + 0x24], eax
call fcn.10029cb0
mov edx, eax
add esp, 4
mov bl, 1
lea edi, [edx + edx]
cmp word [edi + 0x10068470], 0
je 0x10028de3
mov eax, dword [esi + 0x24]
mov dword [esi + 0x40], edx
mov dword [esi + 0x44], eax
movzx eax, word [edi + 0x100685e8]
movsx eax, word [eax*2 + 0x1006879a]
cmp eax, edx
je 0x10028e30
nop word [eax + eax]
movsx edx, word [edi + 0x10068650]
cmp edx, 0x2d
jl 0x10028e15
movzx eax, bl
mov bl, byte [eax + 0x100685d0]
lea edi, [edx + edx]
movzx eax, bl
movzx ecx, word [edi + 0x100685e8]
add ecx, eax
movsx eax, word [ecx*2 + 0x10068798]
cmp eax, edx
jne 0x10028e00
movzx ecx, word [edx*2 + 0x100685e8]
mov edx, dword [esi + 0x50]
movzx eax, bl
add ecx, eax
mov dword [ebp + 8], edx
xor eax, eax
movzx ecx, word [ecx*2 + 0x100686b8]
cmp ecx, 0x2c
cmove ecx, eax
test ecx, ecx
je 0x10028c89
inc dword [esi + 0x24]
mov edi, dword [esi + 0x24]
jmp 0x10028bf1
mov al, byte [esi + 0x18]
mov byte [ebx], al
jmp 0x10028c86
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi + 0x50]
dec ecx
add eax, ecx
push esi
mov dword [esi + 0x24], eax
call fcn.10029cb0
mov edi, dword [esi + 0x24]
mov ecx, eax
mov eax, dword [esi + 0x50]
add esp, 4
mov dword [ebp + 8], eax
jmp 0x10028bf1
mov edx, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [esi + 0x2c], 3
movups xmmword [edx + 1], xmm0
movups xmmword [edx + 0x11], xmm0
mov byte [edx], 1
jmp 0x10028be3
mov edx, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [esi + 0x2c], 3
movups xmmword [edx + 1], xmm0
movups xmmword [edx + 0x11], xmm0
mov byte [edx], 1
or byte [edx + 0xc], 0x20
jmp 0x10028be3
mov edx, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [esi + 0x2c], 3
movups xmmword [edx + 1], xmm0
movups xmmword [edx + 0x11], xmm0
mov byte [edx], 0
or byte [edx + 0xc], 0x20
jmp 0x10028be3
mov eax, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [esi + 0x2c], 3
movups xmmword [eax + 1], xmm0
movups xmmword [eax + 0x11], xmm0
mov byte [eax], 0
jmp 0x10028be3
mov edx, dword [esi + 0x50]
mov bl, byte [edx]
mov cl, byte [edx + 2]
mov byte [ebp - 1], bl
mov al, cl
mov byte [ebp + 0xb], cl
cmp bl, 0x5c
jne 0x10028f54
lea eax, [ebp - 1]
push eax
push edx
call fcn.100286a0
add esp, 8
test eax, eax
je 0x10029296
mov eax, dword [esi + 0x50]
mov bl, byte [ebp - 1]
cmp byte [eax + 1], 0x78
jne 0x10028f4c
mov cl, byte [eax + 5]
jmp 0x10028f4f
mov cl, byte [eax + 3]
mov al, cl
mov byte [ebp + 0xb], cl
cmp al, 0x5c
jne 0x10028fd4
push esi
mov word [ebp - 6], 0
mov byte [ebp - 8], al
call fcn.100287c0
add esp, 4
mov byte [ebp - 7], al
cmp al, 0xff
je 0x10029296
test al, al
je 0x10029296
cmp al, 0x78
jne 0x10028fb9
push esi
call fcn.100287c0
add esp, 4
mov byte [ebp - 6], al
cmp al, 0xff
je 0x10029296
test al, al
je 0x10029296
push esi
call fcn.100287c0
add esp, 4
mov byte [ebp - 5], al
cmp al, 0xff
je 0x10029296
test al, al
je 0x10029296
lea eax, [ebp + 0xb]
push eax
lea eax, [ebp - 8]
push eax
call fcn.100286a0
add esp, 8
test eax, eax
je 0x10029296
mov cl, byte [ebp + 0xb]
cmp cl, bl
jb 0x100292b2
movzx edi, bl
movzx ebx, cl
cmp di, bx
ja 0x10028be3
mov esi, dword [ebp + 0x10]
nop
movzx edx, di
inc edi
mov ecx, edx
and edx, 7
shr ecx, 3
movzx eax, byte [ecx + esi + 1]
bts eax, edx
mov byte [ecx + esi + 1], al
cmp di, bx
jbe 0x10028ff0
mov esi, dword [ebp + 0xc]
jmp 0x10028be3
mov edx, dword [ebp + 0x10]
xor ecx, ecx
nop word [eax + eax]
movzx eax, byte [ecx + 0x100688f0]
or byte [edx + ecx + 1], al
movzx eax, byte [ecx + 0x100688f1]
or byte [edx + ecx + 2], al
movzx eax, byte [ecx + 0x100688f2]
or byte [edx + ecx + 3], al
movzx eax, byte [ecx + 0x100688f3]
or byte [edx + ecx + 4], al
add ecx, 4
cmp ecx, 0x20
jl 0x10029020
jmp 0x10028be3
mov edx, dword [ebp + 0x10]
xor ecx, ecx
nop
movzx eax, byte [ecx + 0x100688f0]
not al
or byte [edx + ecx + 1], al
movzx eax, byte [ecx + 0x100688f1]
not al
or byte [edx + ecx + 2], al
movzx eax, byte [ecx + 0x100688f2]
not al
or byte [edx + ecx + 3], al
movzx eax, byte [ecx + 0x100688f3]
not al
or byte [edx + ecx + 4], al
add ecx, 4
cmp ecx, 0x20
jl 0x10029060
jmp 0x10028be3
mov edx, dword [ebp + 0x10]
xor ecx, ecx
nop word [eax + eax]
movzx eax, byte [ecx + 0x10068910]
or byte [edx + ecx + 1], al
movzx eax, byte [ecx + 0x10068911]
or byte [edx + ecx + 2], al
movzx eax, byte [ecx + 0x10068912]
or byte [edx + ecx + 3], al
movzx eax, byte [ecx + 0x10068913]
or byte [edx + ecx + 4], al
add ecx, 4
cmp ecx, 0x20
jl 0x100290b0
jmp 0x10028be3
mov edx, dword [ebp + 0x10]
xor ecx, ecx
nop
movzx eax, byte [ecx + 0x10068910]
not al
or byte [edx + ecx + 1], al
movzx eax, byte [ecx + 0x10068911]
not al
or byte [edx + ecx + 2], al
movzx eax, byte [ecx + 0x10068912]
not al
or byte [edx + ecx + 3], al
movzx eax, byte [ecx + 0x10068913]
not al
or byte [edx + ecx + 4], al
add ecx, 4
cmp ecx, 0x20
jl 0x100290f0
jmp 0x10028be3
mov esi, dword [ebp + 0x10]
mov edi, 0x30
lea ebx, [edi - 0x26]
nop dword [eax]
mov eax, edi
test eax, eax
jns 0x10029149
add eax, 7
sar eax, 3
movzx ecx, byte [eax + esi + 1]
lea edx, [eax + esi]
mov eax, edi
and eax, 0x80000007
jns 0x10029162
dec eax
or eax, 0xfffffff8
inc eax
bts ecx, eax
inc edi
mov byte [edx + 1], cl
sub ebx, 1
jne 0x10029140
mov esi, dword [ebp + 0xc]
jmp 0x10028be3
mov esi, dword [ebp + 0x10]
xor ecx, ecx
nop dword [eax + eax]
cmp ecx, 6
je 0x1002919a
cmp ecx, 7
jne 0x10029195
mov al, byte [esi + ecx + 1]
or al, 0xfc
mov byte [esi + 8], al
jmp 0x1002919a
mov byte [esi + ecx + 1], 0xff
inc ecx
cmp ecx, 0x20
jl 0x10029180
mov esi, dword [ebp + 0xc]
jmp 0x10028be3
push esi
mov word [ebp - 0xa], 0
mov byte [ebp - 0xc], 0x5c
call fcn.100287c0
add esp, 4
mov byte [ebp - 0xb], al
cmp al, 0xff
je 0x10029296
test al, al
je 0x10029296
cmp al, 0x78
jne 0x1002920a
push esi
call fcn.100287c0
add esp, 4
mov byte [ebp - 0xa], al
cmp al, 0xff
je 0x10029296
test al, al
je 0x10029296
push esi
call fcn.100287c0
add esp, 4
mov byte [ebp - 9], al
cmp al, 0xff
je 0x10029296
test al, al
je 0x10029296
lea eax, [ebp - 2]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.100286a0
add esp, 8
test eax, eax
je 0x10029296
movzx edx, byte [ebp - 2]
mov ecx, dword [ebp + 0x10]
mov eax, edx
shr eax, 3
and edx, 7
add ecx, eax
movzx eax, byte [ecx + 1]
bts eax, edx
mov byte [ecx + 1], al
jmp 0x10028be3
mov eax, dword [esi + 0x50]
mov cl, byte [eax]
lea eax, [ecx - 0x20]
cmp al, 0x5e
ja 0x10029542
movsx edx, cl
mov eax, edx
test eax, eax
jns 0x1002925a
add eax, 7
sar eax, 3
mov ecx, dword [ebp + 0x10]
add ecx, eax
movzx eax, byte [ecx + 1]
and edx, 0x80000007
jns 0x10029273
dec edx
or edx, 0xfffffff8
inc edx
bts eax, edx
mov byte [ecx + 1], al
jmp 0x10028be3
push dword [esi + 8]
push 1
push dword [esi + 0x20]
push dword [esi + 0x50]
call fcn.10039537
add esp, 0x10
jmp 0x10028be3
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x24], 0
jne case.0x10028cf9.31
push 0x100
push str.illegal_escape_sequence
jmp 0x10029555
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x24], 0
jne case.0x10028cf9.31
push 0x100
push str.bad_character_range
jmp 0x10029555
mov eax, dword [esi + 0x50]
inc eax
push eax
call fcn.100432b6
push 0x2c
push dword [esi + 0x50]
mov edi, eax
call fcn.10036480
mov edx, dword [esi + 0x50]
add esp, 0xc
mov ebx, eax
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x100292f0
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esi + 0x50]
lea eax, [edx - 2]
cmp ecx, eax
jne 0x1002933a
mov ecx, 0x7fff
cmp ecx, edi
jl 0x1002931e
test ecx, ecx
js 0x1002931e
test edi, edi
js 0x1002931e
test ecx, ecx
jne 0x1002936c
test edi, edi
jne 0x1002936c
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x24], 0
jne case.0x10028cf9.31
push 0x100
push str.bad_repeat_interval
jmp 0x10029555
lea eax, [ebx + 1]
push eax
call fcn.100432b6
mov ecx, eax
add esp, 4
cmp ecx, 0x7fff
jle 0x1002930a
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x24], 0
jne case.0x10028cf9.31
push 0x100
push str.repeat_interval_too_large
jmp 0x10029555
mov eax, dword [esi + 0x5c]
shl ecx, 0x10
or ecx, edi
pop edi
pop esi
mov dword [eax], ecx
mov eax, 0x104
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x50]
inc eax
push eax
call fcn.100432b6
add esp, 4
cmp eax, 0x7fff
ja 0x10029350
test eax, eax
je 0x1002931e
mov ecx, eax
shl ecx, 0x10
or ecx, eax
mov eax, dword [esi + 0x5c]
pop edi
pop esi
pop ebx
mov dword [eax], ecx
mov eax, 0x104
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x50]
pop edi
movsx ecx, byte [eax]
mov eax, dword [esi + 0x5c]
pop esi
pop ebx
mov dword [eax], ecx
mov eax, 0x102
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x106
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x107
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x108
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x109
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x10a
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x10b
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x10c
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x10d
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x24], 0
jne case.0x10028cf9.31
push 0x100
push str.backreferences_are_not_allowed
jmp 0x10029555
push esi
mov word [ebp + 0xa], 0
mov byte [ebp + 8], 0x5c
call fcn.100287c0
add esp, 4
mov byte [ebp + 9], al
cmp al, 0xff
je 0x10029296
test al, al
je 0x10029296
cmp al, 0x78
jne 0x100294a7
push esi
call fcn.100287c0
add esp, 4
mov byte [ebp + 0xa], al
cmp al, 0xff
je 0x10029296
test al, al
je 0x10029296
push esi
call fcn.100287c0
add esp, 4
mov byte [ebp + 0xb], al
cmp al, 0xff
je 0x10029296
test al, al
je 0x10029296
lea eax, [ebp + 0xf]
push eax
lea eax, [ebp + 8]
push eax
call fcn.100286a0
add esp, 8
test eax, eax
je 0x10029296
mov eax, dword [esi + 0x5c]
movzx ecx, byte [ebp + 0xf]
pop edi
pop esi
mov dword [eax], ecx
mov eax, 0x102
pop ebx
mov esp, ebp
pop ebp
ret
push 0x21
call fcn.1000b8b0
mov ecx, dword [esi + 0x5c]
add esp, 4
mov edx, dword [ebp + 0x10]
mov dword [ecx], eax
mov eax, dword [esi + 0x5c]
movups xmm0, xmmword [edx + 1]
pop edi
mov eax, dword [eax]
movups xmmword [eax + 1], xmm0
movups xmm0, xmmword [edx + 0x11]
movups xmmword [eax + 0x11], xmm0
mov eax, dword [esi + 0x5c]
mov ecx, dword [eax]
mov al, byte [edx]
mov byte [ecx], al
mov eax, 0x105
mov dword [esi + 0x2c], 1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x24], 0
jne case.0x10028cf9.31
push 0x100
push str.missing_terminating___for_character_class
jmp 0x10029555
mov eax, dword [esi + 0x50]
mov cl, byte [eax]
lea eax, [ecx - 0x20]
cmp al, 0x5e
ja 0x10029542
pop edi
pop esi
movsx eax, cl
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x24], 0
jne case.0x10028cf9.31
push 0x100
push str.non_ascii_character
mov dword [eax + 0x24], 9
add eax, 0x28
push eax
call fcn.10014c00
add esp, 0xc
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push str.fatal_flex_scanner_internal_error__no_action_found
push esi
call fcn.10028b10
mov es, word [edx]
adc dh, cl
xchg edx, eax
add dl, byte [eax]
adc byte [ebx - 0x716aeffe], 2
adc byte [edx - 753925490], dh
mov es, word [edx]
adc ah, dh
mov es, word [edx]
adc byte [edx - 0x36effd6d], dh
xchg ebx, eax
add dl, byte [eax]
aad 0x93
add dl, byte [eax]
loope 0x10029539
add dl, byte [eax]
in eax, dx
xchg ebx, eax
add dl, byte [eax]
stc
xchg ebx, eax
add dl, byte [eax]
add eax, 0x11100294
xchg esp, eax
add dl, byte [eax]
sbb eax, 0x29100294
xchg esp, eax
add dl, byte [eax]
inc ebp
xchg esp, eax
add dl, byte [eax]
aam 0x94
add dl, byte [eax]
adc dword [edi - 0x6feaeffe], ecx
add dl, byte [eax]
pop ecx
nop
add dl, byte [eax]
mov eax, dword [0xe9100290]
nop
add dl, byte [eax]
xor dword [ecx - 0x6e89effe], edx
add dl, byte [eax]
test al, 0x91
add dl, byte [eax]
xchg edx, eax
add dl, byte [eax]
sub al, 0x95
add dl, byte [eax]
jle 0x10029584
add dl, byte [eax]
add byte [ebp - 0x6a97effe], cl
add dl, byte [eax]
pop ss
xchg ebp, eax
add dl, byte [eax]