Function at 0x494380
Capabilities:
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0xa0]
test eax, eax
je 0x494950
test edi, edi
je 0x494950
mov dword [esp + 0x64], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x2c], edi
mov eax, dword [eax]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x54], 0
test eax, eax
jle 0x4945f0
shl eax, 2
mov dword [esp], eax
call dword [0x6713dc]
mov dword [esp + 0x50], eax
test eax, eax
je 0x494990
mov edx, dword [edi + 0x14]
mov dword [esp + 4], 0
shl edx, 2
mov dword [esp], eax
mov dword [esp + 8], edx
call sub.msvcrt.dll_memset
mov eax, dword [esp + 0x24]
mov edx, dword [sym.imp.msvcrt.dll__iob]
add edx, 0x40
mov dword [esp + 0x14], edx
jmp 0x49456c
lea ebx, [ecx + ecx*4]
mov ecx, dword [edx + 0x18]
lea ebx, [ecx + ebx*4]
mov ecx, dword [ebx + 4]
test ecx, ecx
js 0x494638
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebx]
test ecx, ecx
js 0x494650
mov esi, dword [esp + 0x50]
test esi, esi
je 0x4947d0
mov ebp, dword [esp + 0x2c]
mov esi, dword [esi + ecx*4]
mov ebp, dword [ebp + 0x18]
lea ecx, [ebp + ecx*8]
mov ebp, dword [ecx]
cmp esi, ebp
jl 0x494638
mov ecx, dword [ecx + 4]
cmp esi, ecx
jg 0x494638
cmp ebp, ecx
sete al
and eax, 0xff
cmp dword [ebx + 0x10], 1
je 0x4944dd
mov ebp, dword [ebx + 0xc]
test ebp, ebp
js 0x4944e6
test eax, eax
jne 0x4944e6
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
inc eax
cmp dword [edx + 0x14], eax
jle 0x4944e6
lea eax, [esp + 0x24]
call fcn.004905d0
mov eax, dword [ebx + 8]
test eax, eax
js 0x494522
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x49493f
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x49493f
mov edx, dword [edx + 0x18]
test edx, edx
je 0x49493f
lea ecx, [ecx + eax*4]
mov esi, dword [ecx]
cmp esi, dword [edx + eax*8 + 4]
jge 0x494630
inc esi
mov dword [ecx], esi
mov eax, dword [ebx + 0xc]
cmp eax, 0x123455
ja 0x49453f
mov edx, dword [esp + 0x50]
test edx, edx
je 0x4947d0
mov dword [edx + eax*4], 0
mov edx, dword [ebx + 4]
mov eax, dword [edi + 8]
mov esi, dword [ebx]
mov eax, dword [eax + edx*4]
test esi, esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], 0
je 0x494568
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x20]
add ebx, eax
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4946d7
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
add eax, edx
mov edx, dword [esp + 0x38]
cmp byte [eax], 0
jne 0x494598
test edx, edx
je 0x4946d7
cmp dword [edx], 2
je 0x4946d7
mov dword [esp + 0x20], 1
cmp byte [eax], 0
jne 0x4945b1
mov eax, dword [esp + 0x50]
test eax, eax
je 0x494693
mov ebx, dword [edx + 0x14]
mov eax, dword [esp + 0x3c]
mov ecx, eax
mov dword [esp + 0x40], 0
cmp eax, ebx
jl 0x494464
test ecx, ecx
jne 0x4945d9
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x494568
lea eax, [esp + 0x24]
mov dword [esp + 0x28], 0
call fcn.004914b0
jmp 0x494568
mov dword [esp + 0x50], 0
xor eax, eax
jmp 0x494452
mov ebx, dword [esp + 0x1c]
cmp dword [esi + 0xc], edx
jg 0x4945d9
cmp eax, 0
jl 0x4945d9
je 0x4945d9
mov ecx, dword [ebx + 8]
test ecx, ecx
js 0x494629
mov edx, dword [esp + 0x50]
test edx, edx
je 0x4947d0
mov esi, dword [edx + ecx*4]
dec esi
mov dword [edx + ecx*4], esi
dec eax
je 0x494689
lea esi, [esi]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
lea ecx, [eax + 1]
mov eax, ecx
mov dword [esp + 0x3c], ecx
cmp ecx, dword [edx + 0x14]
jl 0x494464
jmp 0x4945ca
test esi, esi
je 0x49490a
mov ecx, dword [esp + 0x64]
mov ebp, dword [esp + 0x5c]
add ecx, ebp
cmp byte [ecx], 0
jne 0x494760
mov ebp, dword [esi + 0xc]
test ebp, ebp
jne 0x494638
mov ecx, dword [esi + 0x10]
test ecx, ecx
jle 0x494638
mov dword [esp + 0x40], 1
mov dword [esp + 0x20], 0
mov eax, 1
jmp 0x4944be
mov eax, dword [esp + 0x3c]
mov ecx, eax
cmp eax, dword [edx + 0x14]
jge 0x4945d9
lea esi, [eax + eax*4]
mov ebx, dword [edx + 0x18]
lea ebx, [ebx + esi*4]
mov ebp, dword [ebx + 4]
test ebp, ebp
js 0x4946ca
mov ebx, dword [ebx]
mov esi, dword [ebx + 0xc]
test esi, esi
jne 0x4945d9
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jle 0x4945d9
mov dword [esp + 0x40], 0
jmp 0x494464
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x49471f
test ecx, ecx
je 0x494712
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x494712
xor ebx, ebx
mov eax, ebx
shl eax, 4
mov eax, dword [edx + eax + 0xc]
test eax, eax
je 0x49470b
mov dword [esp], eax
call dword [0x6713e0]
mov edx, dword [esp + 0x4c]
inc ebx
cmp ebx, dword [esp + 0x44]
jl 0x4946f1
mov dword [esp], edx
call dword [0x6713e0]
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x49472c
mov dword [esp], ecx
call dword [0x6713e0]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4947c0
cmp eax, 0xffffffff
jne 0x49474f
cmp dword [esp + 0x7c], 0x989680
setg al
and eax, 0xff
neg eax
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
lea edx, [esp + 0x20]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp], 0
call fcn.004471f0
mov edx, eax
mov eax, esi
call fcn.004921e0
cmp eax, 1
je 0x4947f0
cmp eax, 0
jne 0x4947a6
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x494630
mov eax, dword [esi + 0x10]
test eax, eax
jg 0x494679
jmp 0x494630
jge 0x494630
mov dword [esp + 0x24], 0xfffffffc
mov ecx, dword [esp + 0x3c]
jmp 0x4945ca
add esp, 0x8c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x24], 0xffffffff
test edx, edx
jne 0x494712
jmp 0x49472c
mov eax, dword [esi + 0xc]
test eax, eax
js 0x494689
mov ebp, dword [esi + 0x10]
test ebp, ebp
jle 0x494689
mov edx, dword [ebx + 4]
mov eax, dword [edi + 8]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 8]
test eax, eax
js 0x49484f
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x49493f
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x49493f
mov edx, dword [edx + 0x18]
test edx, edx
je 0x49493f
lea ecx, [ecx + eax*4]
mov ebp, dword [ecx]
cmp ebp, dword [edx + eax*8 + 4]
jge 0x494630
inc ebp
mov dword [ecx], ebp
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
inc eax
cmp dword [edx + 0x14], eax
jg 0x494958
mov dword [esp + 0x40], 1
mov edx, 1
mov dword [esp + 0x1c], ebx
jmp 0x4948a7
lea edx, [esp + 0x20]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp], 0
call fcn.004471f0
mov edx, eax
mov eax, esi
call fcn.004921e0
mov edx, dword [esp + 0x40]
inc edx
cmp eax, 1
mov dword [esp + 0x40], edx
jne 0x4945ff
cmp dword [esi + 0x10], edx
je 0x494966
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x20]
add eax, ebx
mov ecx, dword [esp + 0x64]
add ecx, eax
mov dword [esp + 0x5c], eax
cmp byte [ecx], 0
je 0x494980
cmp dword [esi + 0xc], edx
jg 0x494874
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x24]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x3c], 0xffffffff
call fcn.004905d0
mov dword [esp + 0x38], ebp
mov ecx, dword [esp + 0x64]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x3c], ebx
add ecx, ebp
jmp 0x494874
mov eax, dword [esp + 0x14]
mov dword [esp + 8], 0x23
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.epsilon_transition_left_at_runtime_n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0x24], 0xfffffffe
mov ecx, dword [esp + 0x3c]
jmp 0x4945ca
mov dword [esp + 0x24], 0xffffffff
jmp 0x4946db
or eax, 0xffffffff
jmp 0x49474f
lea eax, [esp + 0x24]
call fcn.004905d0
jmp 0x494861
mov ebx, dword [esp + 0x1c]
cmp dword [esi + 0xc], edx
jg 0x4945d9
mov eax, 1
jmp 0x49460f
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
sub eax, ecx
mov dword [esp + 0x5c], eax
jmp 0x49496a
mov edx, str.running_regexp
call fcn.0048f670
or eax, 0xffffffff
jmp 0x49474f