Function at 0x10120c90
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 0x10120d40
cmp dword [esi + 0x2c], 0
mov dword [esi + 0x28], 1
jne 0x10120cc0
mov dword [esi + 0x2c], 1
cmp dword [esi + 4], 0
jne 0x10120cd3
push 0
call fcn.10259f1e
add esp, 4
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
jne 0x10120ce6
push 1
call fcn.10259f1e
add esp, 4
mov dword [esi + 8], eax
mov edx, dword [esi + 0x14]
test edx, edx
je 0x10120cf6
mov edi, dword [esi + 0xc]
cmp dword [edx + edi*4], 0
jne 0x10120d1c
push esi
call fcn.1011fd10
push esi
push 0x4000
push dword [esi + 4]
call fcn.1011fb40
mov edx, dword [esi + 0xc]
add esp, 0x10
mov ecx, dword [esi + 0x14]
mov dword [ecx + edx*4], eax
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
mov eax, dword [edx + edi*4]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x1c], eax
mov eax, dword [edx + edi*4]
mov ecx, dword [eax + 8]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x50], ecx
mov eax, dword [edx + edi*4]
mov eax, dword [eax]
mov dword [esi + 4], eax
mov al, byte [ecx]
mov byte [esi + 0x18], al
nop
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
movzx eax, byte [edi]
lea edx, [ecx + ecx]
cmp word [edx + 0x102951e8], 0
mov bl, byte [eax + 0x10295248]
je 0x10120d6d
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], edi
movsx eax, word [edx + 0x10295360]
movzx edi, bl
add eax, edi
movsx eax, word [eax*2 + 0x10295510]
cmp eax, ecx
je 0x10120dbd
nop word [eax + eax]
movsx ecx, word [edx + 0x102953c8]
cmp ecx, 0x2d
jl 0x10120da2
mov bl, byte [edi + 0x10295348]
lea edx, [ecx + ecx]
movzx edi, bl
movsx eax, word [edx + 0x10295360]
add eax, edi
movsx eax, word [eax*2 + 0x10295510]
cmp eax, ecx
jne 0x10120d90
movsx ecx, word [ecx*2 + 0x10295360]
mov edi, dword [ebp - 0x10]
movzx eax, bl
inc edi
add ecx, eax
mov dword [ebp - 0x10], edi
movsx ecx, word [ecx*2 + 0x10295430]
cmp ecx, 0x2c
jne 0x10120d51
mov edx, dword [ebp + 8]
mov ebx, dword [esi + 0x44]
mov eax, dword [esi + 0x40]
nop dword [eax + eax]
movsx edi, word [eax*2 + 0x102951e8]
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 0x10120e50
cmp dword [edi*4 + 0x102955f0], 0
je 0x10120e50
xor edx, edx
cmp dword [esi + 0x20], edx
jle 0x10120e50
mov eax, dword [esi + 0x50]
cmp byte [edx + eax], 0xa
jne 0x10120e48
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]
jl 0x10120e23
nop
cmp edi, 0x20
ja case.default.0x10120e59
jmp dword [edi*4 + 0x10121700]
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 0x10120ea2
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 0x10120f15
call fcn.10120660
add esp, 4
sub eax, 0
je 0x10120fd0
sub eax, 1
jne 0x10120ee3
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 0x10120e50
sub eax, 1
jne 0x10120d40
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.10121a50
mov edx, dword [esi + 0x50]
add esp, 4
mov ebx, dword [esi + 0x24]
mov dword [ebp + 8], edx
jmp 0x10120df0
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi + 0x50]
dec ecx
add eax, ecx
mov dword [esi + 0x24], eax
call fcn.10121a50
mov edx, eax
add esp, 4
mov bl, 1
lea edi, [edx + edx]
cmp word [edi + 0x102951e8], 0
je 0x10120f43
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x40], edx
mov dword [esi + 0x44], ecx
movsx eax, word [edi + 0x10295360]
movsx eax, word [eax*2 + 0x10295512]
cmp eax, edx
je 0x10120f90
nop word [eax + eax]
movsx edx, word [edi + 0x102953c8]
cmp edx, 0x2d
jl 0x10120f75
movzx eax, bl
mov bl, byte [eax + 0x10295348]
lea edi, [edx + edx]
movzx eax, bl
movsx ecx, word [edi + 0x10295360]
add ecx, eax
movsx eax, word [ecx*2 + 0x10295510]
cmp eax, edx
jne 0x10120f60
movsx ecx, word [edx*2 + 0x10295360]
mov edx, dword [esi + 0x50]
movzx eax, bl
add ecx, eax
mov dword [ebp + 8], edx
xor eax, eax
movsx ecx, word [ecx*2 + 0x10295430]
cmp ecx, 0x2c
cmove ecx, eax
test ecx, ecx
je 0x10120de5
inc dword [esi + 0x24]
mov edi, dword [esi + 0x24]
jmp 0x10120d4e
mov al, byte [esi + 0x18]
mov byte [ebx], al
jmp 0x10120de2
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi + 0x50]
dec ecx
add eax, ecx
push esi
mov dword [esi + 0x24], eax
call fcn.10121a50
mov edi, dword [esi + 0x24]
mov ecx, eax
mov eax, dword [esi + 0x50]
add esp, 4
mov dword [ebp + 8], eax
jmp 0x10120d4e
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 0x10120d40
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 0x10120d40
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 0x10120d40
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 0x10120d40
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 0x101210b4
lea eax, [ebp - 1]
push eax
push edx
call fcn.10120a70
add esp, 8
test eax, eax
je 0x10121419
mov eax, dword [esi + 0x50]
mov bl, byte [ebp - 1]
cmp byte [eax + 1], 0x78
jne 0x101210ac
mov cl, byte [eax + 5]
jmp 0x101210af
mov cl, byte [eax + 3]
mov al, cl
mov byte [ebp + 0xb], cl
cmp al, 0x5c
jne 0x10121134
push esi
mov word [ebp - 6], 0
mov byte [ebp - 8], al
call fcn.10120bb0
add esp, 4
mov byte [ebp - 7], al
cmp al, 0xff
je 0x10121419
test al, al
je 0x10121419
cmp al, 0x78
jne 0x10121119
push esi
call fcn.10120bb0
add esp, 4
mov byte [ebp - 6], al
cmp al, 0xff
je 0x10121419
test al, al
je 0x10121419
push esi
call fcn.10120bb0
add esp, 4
mov byte [ebp - 5], al
cmp al, 0xff
je 0x10121419
test al, al
je 0x10121419
lea eax, [ebp + 0xb]
push eax
lea eax, [ebp - 8]
push eax
call fcn.10120a70
add esp, 8
test eax, eax
je 0x10121419
mov cl, byte [ebp + 0xb]
cmp cl, bl
jb 0x10121435
movzx edi, bl
movzx ebx, cl
cmp di, bx
ja 0x10120d40
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 0x10121150
mov esi, dword [ebp + 0xc]
jmp 0x10120d40
mov esi, dword [ebp + 0x10]
mov edx, 0x1038f4dd
mov ebx, 0x1038f4dc
mov eax, edx
sub ebx, esi
mov edi, 8
sub eax, esi
lea ecx, [esi + 2]
mov esi, eax
movzx eax, byte [edx - 1]
lea edx, [edx + 4]
or byte [ecx - 1], al
lea ecx, [ecx + 4]
movzx eax, byte [edx - 4]
or byte [ecx - 4], al
movzx eax, byte [ebx + ecx - 4]
or byte [ecx - 3], al
movzx eax, byte [esi + ecx - 4]
or byte [ecx - 2], al
sub edi, 1
jne 0x10121192
mov esi, dword [ebp + 0xc]
jmp 0x10120d40
mov esi, dword [ebp + 0x10]
mov edx, 0x1038f4dd
mov ebx, 0x1038f4dc
mov eax, edx
sub ebx, esi
mov edi, 8
sub eax, esi
lea ecx, [esi + 2]
mov esi, eax
movzx eax, byte [edx - 1]
lea edx, [edx + 4]
not al
lea ecx, [ecx + 4]
or byte [ecx - 5], al
movzx eax, byte [edx - 4]
not al
or byte [ecx - 4], al
movzx eax, byte [ecx + ebx - 4]
not al
or byte [ecx - 3], al
movzx eax, byte [ecx + esi - 4]
not al
or byte [ecx - 2], al
sub edi, 1
jne 0x101211e0
mov esi, dword [ebp + 0xc]
jmp 0x10120d40
mov esi, dword [ebp + 0x10]
mov edx, 0x1038f4fd
mov ebx, 0x1038f4fc
mov eax, edx
sub ebx, esi
mov edi, 8
sub eax, esi
lea ecx, [esi + 2]
mov esi, eax
movzx eax, byte [edx - 1]
lea edx, [edx + 4]
or byte [ecx - 1], al
lea ecx, [ecx + 4]
movzx eax, byte [edx - 4]
or byte [ecx - 4], al
movzx eax, byte [ebx + ecx - 4]
or byte [ecx - 3], al
movzx eax, byte [esi + ecx - 4]
or byte [ecx - 2], al
sub edi, 1
jne 0x10121236
mov esi, dword [ebp + 0xc]
jmp 0x10120d40
mov esi, dword [ebp + 0x10]
mov edx, 0x1038f4fd
mov ebx, 0x1038f4fc
mov eax, edx
sub ebx, esi
mov edi, 8
sub eax, esi
lea ecx, [esi + 2]
mov esi, eax
movzx eax, byte [edx - 1]
lea edx, [edx + 4]
not al
lea ecx, [ecx + 4]
or byte [ecx - 5], al
movzx eax, byte [edx - 4]
not al
or byte [ecx - 4], al
movzx eax, byte [ebx + ecx - 4]
not al
or byte [ecx - 3], al
movzx eax, byte [esi + ecx - 4]
not al
or byte [ecx - 2], al
sub edi, 1
jne 0x10121284
mov esi, dword [ebp + 0xc]
jmp 0x10120d40
mov esi, dword [ebp + 0x10]
mov edi, 0x30
lea ebx, [edi - 0x26]
mov eax, edi
test eax, eax
jns 0x101212d1
add eax, 7
sar eax, 3
movzx ecx, byte [eax + esi + 1]
lea edx, [eax + esi]
mov eax, edi
and eax, reloc.WS2_32.dll_getsockopt
jns 0x101212ea
dec eax
or eax, 0xfffffff8
inc eax
bts ecx, eax
inc edi
mov byte [edx + 1], cl
sub ebx, 1
jne 0x101212c8
mov esi, dword [ebp + 0xc]
jmp 0x10120d40
mov esi, dword [ebp + 0x10]
xor ecx, ecx
cmp ecx, 6
je 0x1012131d
cmp ecx, 7
jne 0x10121318
mov al, byte [ecx + esi + 1]
or al, 0xfc
mov byte [esi + 8], al
jmp 0x1012131d
mov byte [ecx + esi + 1], 0xff
inc ecx
cmp ecx, 0x20
jl 0x10121303
mov esi, dword [ebp + 0xc]
jmp 0x10120d40
push esi
mov word [ebp - 0xa], 0
mov byte [ebp - 0xc], 0x5c
call fcn.10120bb0
add esp, 4
mov byte [ebp - 0xb], al
cmp al, 0xff
je 0x10121419
test al, al
je 0x10121419
cmp al, 0x78
jne 0x1012138d
push esi
call fcn.10120bb0
add esp, 4
mov byte [ebp - 0xa], al
cmp al, 0xff
je 0x10121419
test al, al
je 0x10121419
push esi
call fcn.10120bb0
add esp, 4
mov byte [ebp - 9], al
cmp al, 0xff
je 0x10121419
test al, al
je 0x10121419
lea eax, [ebp - 2]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.10120a70
add esp, 8
test eax, eax
je 0x10121419
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 0x10120d40
mov eax, dword [esi + 0x50]
mov cl, byte [eax]
lea eax, [ecx - 0x20]
cmp al, 0x5e
ja 0x101216c4
movsx edx, cl
mov eax, edx
test eax, eax
jns 0x101213dd
add eax, 7
sar eax, 3
mov ecx, dword [ebp + 0x10]
add ecx, eax
movzx eax, byte [ecx + 1]
and edx, reloc.WS2_32.dll_getsockopt
jns 0x101213f6
dec edx
or edx, 0xfffffff8
inc edx
bts eax, edx
mov byte [ecx + 1], al
jmp 0x10120d40
push dword [esi + 8]
push 1
push dword [esi + 0x20]
push dword [esi + 0x50]
call fcn.1025f8fd
add esp, 0x10
jmp 0x10120d40
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x24], 0
jne case.0x10120e59.31
push 0x100
push str.illegal_escape_sequence
jmp 0x101216d7
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x24], 0
jne case.0x10120e59.31
push 0x100
push str.bad_character_range
jmp 0x101216d7
mov eax, dword [esi + 0x50]
inc eax
push eax
call fcn.1025b92f
push 0x2c
push dword [esi + 0x50]
mov edi, eax
call fcn.1024c8f0
mov edx, dword [esi + 0x50]
add esp, 0xc
mov ebx, eax
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x10121472
sub edx, ecx
mov ecx, ebx
sub ecx, dword [esi + 0x50]
lea eax, [edx - 2]
cmp ecx, eax
jne 0x101214bc
mov ecx, 0x7fff
cmp ecx, edi
jl 0x101214a0
test ecx, ecx
js 0x101214a0
test edi, edi
js 0x101214a0
test ecx, ecx
jne 0x101214ee
test edi, edi
jne 0x101214ee
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x24], 0
jne case.0x10120e59.31
push 0x100
push str.bad_repeat_interval
jmp 0x101216d7
lea eax, [ebx + 1]
push eax
call fcn.1025b92f
mov ecx, eax
add esp, 4
cmp ecx, 0x7fff
jle 0x1012148c
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x24], 0
jne case.0x10120e59.31
push 0x100
push str.repeat_interval_too_large
jmp 0x101216d7
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.1025b92f
add esp, 4
cmp eax, 0x7fff
ja 0x101214d2
test eax, eax
je 0x101214a0
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.0x10120e59.31
push 0x100
push str.backreferences_are_not_allowed
jmp 0x101216d7
push esi
mov word [ebp + 0xa], 0
mov byte [ebp + 8], 0x5c
call fcn.10120bb0
add esp, 4
mov byte [ebp + 9], al
cmp al, 0xff
je 0x10121419
test al, al
je 0x10121419
cmp al, 0x78
jne 0x10121629
push esi
call fcn.10120bb0
add esp, 4
mov byte [ebp + 0xa], al
cmp al, 0xff
je 0x10121419
test al, al
je 0x10121419
push esi
call fcn.10120bb0
add esp, 4
mov byte [ebp + 0xb], al
cmp al, 0xff
je 0x10121419
test al, al
je 0x10121419
lea eax, [ebp + 0xf]
push eax
lea eax, [ebp + 8]
push eax
call fcn.10120a70
add esp, 8
test eax, eax
je 0x10121419
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.100eeff0
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.0x10120e59.31
push 0x100
push str.missing_terminating___for_character_class
jmp 0x101216d7
mov eax, dword [esi + 0x50]
mov cl, byte [eax]
lea eax, [ecx - 0x20]
cmp al, 0x5e
ja 0x101216c4
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.0x10120e59.31
push 0x100
push str.non_ascii_character
mov dword [eax + 0x24], 9
add eax, 0x28
push eax
call fcn.100f1490
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.1011fdd0
nop
invalid