Function at 0x407210
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 0xc], edx
mov edi, ecx
mov esi, dword [ebx + 0xc]
test esi, esi
jne 0x40722b
lea esi, [ebx + 0x10]
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x10], edx
test edx, edx
jne 0x40723e
add eax, 0x10
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 8]
mov ecx, dword [eax]
cmp ecx, 6
je 0x4072d9
cmp ecx, 5
je 0x4072dc
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
add eax, 0xfffffff9
cmp eax, 0x32
ja case.0x40726d.20
movzx eax, byte [eax + 0x4079bc]
jmp dword [eax*4 + 0x407994]
mov ebx, 3
jmp 0x40734e
mov ebx, 4
jmp 0x40734e
mov ebx, 5
jmp 0x40734e
mov ebx, 0xc
jmp 0x40734e
mov ebx, 0xd
jmp 0x40734e
mov ebx, 0xe
jmp 0x40734e
mov eax, ecx
sub eax, 1
je 0x4072d2
sub eax, 1
je 0x4072cb
sub eax, 5
je 0x4072d2
mov ebx, 0xf
jmp 0x40734e
mov ebx, 0x36
jmp 0x40734e
mov ebx, 0x33
jmp 0x40734e
cmp ecx, 5
mov edx, dword [ebp + 0x10]
sete byte [ebp - 5]
mov eax, dword [edx]
add eax, 0xfffffff9
cmp eax, 0x32
ja case.0x4072f8.11
movzx eax, byte [eax + 0x407a0c]
jmp dword [eax*4 + 0x4079f0]
xor ebx, ebx
cmp byte [ebp - 5], bl
setne bl
lea ebx, [ebx*4 + 0x21]
jmp 0x40734e
xor ebx, ebx
cmp byte [ebp - 5], bl
setne bl
lea ebx, [ebx*4 + 0x22]
jmp 0x40734e
xor ebx, ebx
cmp byte [ebp - 5], bl
setne bl
lea ebx, [ebx*4 + 0x23]
jmp 0x40734e
xor ebx, ebx
cmp byte [ebp - 5], bl
setne bl
lea ebx, [ebx*4 + 0x24]
jmp 0x40734e
xor ebx, ebx
cmp byte [ebp - 5], bl
setne bl
add ebx, 0x1f
dec ecx
cmp ecx, 0x14
ja case.0x40735f.4
movzx eax, byte [ecx + 0x407a4c]
jmp dword [eax*4 + 0x407a40]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
shl eax, 8
or eax, dword [esi]
cmp eax, 0x200
jg 0x4073b5
je 0x407672
sub eax, 0
je 0x407672
sub eax, 2
jne 0x40768e
mov eax, dword [ebp + 8]
cmp dword [ebp - 0xc], eax
jne 0x4073a0
cmp ebx, 5
jne 0x407659
mov ebx, eax
mov ecx, edi
push 1
mov edx, ebx
call fcn.00405ef0
add esp, 4
jmp 0x407221
cmp eax, 0x202
jne 0x40768e
mov ebx, dword [ebp + 8]
mov ecx, edi
push 1
mov edx, ebx
call fcn.00405ef0
add esp, 4
jmp 0x407221
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4073fb
cmp dword [eax], 0
jne 0x4073fb
cmp dword [eax + 4], 1
jne 0x4073fb
mov ecx, dword [edi + 0x1a4]
cmp dword [eax + 8], ecx
jge 0x40742e
mov dword [eax + 8], ecx
jmp 0x40742e
lea ecx, [edi + 0x18]
call fcn.00405db0
mov eax, dword [ebp - 0x10]
xor edx, edx
push 0
push eax
push ecx
mov ecx, edi
call fcn.004043b0
mov eax, dword [edi + 0x1a4]
add esp, 0xc
cmp dword [edi + 0x20], eax
jge 0x407424
mov dword [edi + 0x20], eax
mov esi, dword [ebx + 0xc]
test esi, esi
jne 0x40742e
lea esi, [ebx + 0x10]
cmp dword [esi], 0
je 0x407458
xor edx, edx
mov ecx, edi
call fcn.00405b50
mov esi, eax
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x407448
lea eax, [ebx + 0x10]
push 0
push eax
push esi
xor edx, edx
mov ecx, edi
call fcn.004043b0
add esp, 0xc
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx]
cmp eax, 0xe
jne 0x407467
lea edx, [eax + 4]
jmp 0x407472
xor edx, edx
cmp eax, 0x10
setne dl
add edx, 0x13
push 0
push 0x416560
push esi
mov ecx, edi
call fcn.004043b0
add esp, 0xc
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x40749a
push 1
push esi
mov edx, eax
mov ecx, edi
call fcn.00406530
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edx]
cmp eax, 0xc
je 0x4074b2
cmp eax, 0xd
lea eax, [edi + 8]
jne 0x4074b5
lea eax, [edi + 0x28]
cmp dword [esi], 0
mov dword [ebp + 8], eax
jne 0x4074d1
cmp dword [esi + 4], 0
jne 0x4074d1
mov eax, dword [edi + 0x1a4]
cmp dword [esi + 8], eax
jge 0x4074d1
mov dword [esi + 8], eax
mov edx, dword [ebp + 0xc]
mov ecx, edi
push 1
call fcn.00405ef0
add esp, 4
mov edx, 0x10
mov ecx, edi
push 0
push eax
push eax
call fcn.004043b0
mov eax, dword [edi]
add esp, 0xc
mov edx, 0xe
mov ecx, edi
mov byte [eax], 0x75
inc dword [edi]
mov eax, dword [edi]
mov esi, eax
sub esi, dword [edi + 0x1ac]
push 0
or esi, 0x40000000
mov byte [eax], 0
mov eax, dword [ebp + 8]
inc dword [edi]
push eax
push eax
call fcn.004043b0
mov eax, dword [edi]
add esp, 0xc
mov edx, esi
mov byte [eax], 0xeb
inc dword [edi]
mov eax, dword [edi]
mov ecx, eax
sub ecx, dword [edi + 0x1ac]
or ecx, 0x40000000
mov dword [ebp - 0x10], ecx
mov ecx, edi
mov byte [eax], 0
inc dword [edi]
call fcn.00405a70
mov esi, dword [ebx + 0xc]
test esi, esi
jne 0x407557
lea esi, [ebx + 0x10]
cmp dword [esi], 0
jne 0x407562
cmp dword [esi + 4], 0
je 0x40757e
lea edx, [edi + 8]
mov ecx, edx
call fcn.00405db0
mov ecx, esi
call fcn.00405db0
push ebx
mov ecx, edi
call fcn.00405de0
add esp, 4
lea edx, [edi + 0x28]
mov ecx, edx
call fcn.00405db0
lea ecx, [edi + 8]
call fcn.00405db0
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx]
cmp eax, 0xb
je 0x4075b2
cmp eax, 0xd
je 0x4075b2
push 0
push 0x416560
push 0x416560
mov edx, 8
jmp 0x4075bb
push 0
push edx
push edx
mov edx, 0xe
mov ecx, edi
call fcn.004043b0
mov eax, dword [ebx]
add esp, 0xc
cmp eax, 0xb
je 0x4075d6
mov edx, 7
cmp eax, 0xd
jne 0x4075db
mov edx, 6
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x4075e8
lea ecx, [eax + 0x10]
push 0
push 0x416560
push ecx
mov ecx, edi
call fcn.004043b0
mov edx, dword [ebp - 0x10]
add esp, 0xc
mov ecx, edi
call fcn.00405a70
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp + 8]
jmp 0x407487
mov eax, dword [edx]
cmp eax, 0x62
ja 0x40761f
mov eax, dword [eax*4 + 0x4137e8]
jmp 0x407624
mov eax, str.UnknownOp
push eax
push 0x414170
call fcn.00401010
mov ebx, dword [ebp + 0x10]
push 0x6b3
push dword [ebx]
push str.JIT_ERROR__d__jit.c_line__d__n
call fcn.00401010
add esp, 0x14
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x407651
int3
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push 0
push ecx
push esi
mov edx, ebx
mov ecx, edi
call fcn.004043b0
add esp, 0xc
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push ecx
push esi
mov edx, ebx
mov ecx, edi
call fcn.004043b0
add esp, 0xc
mov ecx, esi
call fcn.00405db0
jmp 0x407484
mov eax, dword [edx]
cmp eax, 0x62
ja 0x40769e
mov eax, dword [eax*4 + 0x4137e8]
jmp 0x4076a3
mov eax, str.UnknownOp
push dword [ecx]
push dword [esi]
push eax
push str._s__d__d__n
call fcn.00401010
mov eax, dword [ebp - 0x10]
push 0x6df
mov eax, dword [eax]
shl eax, 8
or eax, dword [esi]
push eax
push str.JIT_ERROR__d__jit.c_line__d__n
call fcn.00401010
add esp, 0x1c
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4076da
int3
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov edx, dword [ebp + 8]
mov ecx, edi
push 1
call fcn.00405e40
mov edx, dword [ebp + 0xc]
add esp, 4
mov ecx, edi
mov esi, eax
push 1
call fcn.00405e40
add esp, 4
mov dword [ebp + 8], eax
mov ecx, dword [eax]
mov edx, ecx
shl edx, 8
or edx, dword [esi]
cmp edx, 0x101
je 0x40775e
mov ebx, dword [ebp + 0x10]
push ecx
push dword [esi]
mov ecx, dword [ebx]
call fcn.00401ea0
push eax
push str._s__d__d__n
call fcn.00401010
mov eax, dword [ebp + 8]
push 0x73b
mov eax, dword [eax]
shl eax, 8
or eax, dword [esi]
push eax
push str.JIT_ERROR__d__jit.c_line__d__n
call fcn.00401010
add esp, 0x1c
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x407756
int3
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push 0
push eax
push esi
mov edx, ebx
mov ecx, edi
call fcn.004043b0
add esp, 0xc
cmp ebx, 0x1f
jne 0x407682
mov ebx, dword [ebp + 0x10]
cmp dword [ebx], 0x32
je 0x407682
mov eax, dword [edi]
mov byte [eax], 0x7b
inc dword [edi]
mov eax, dword [edi]
mov ecx, eax
sub ecx, dword [edi + 0x1ac]
or ecx, 0x40000000
mov dword [ebp + 8], ecx
mov byte [eax], 0
inc dword [edi]
mov ecx, dword [ebx]
lea eax, [ecx - 0x30]
cmp eax, 9
ja case.0x4077b7.50
movzx eax, byte [eax + 0x407a74]
jmp dword [eax*4 + 0x407a64]
xor edx, edx
mov ecx, edi
call fcn.00405b50
mov ebx, eax
mov edx, 0xe
push 0
push ebx
push ebx
mov ecx, edi
call fcn.004043b0
mov ecx, dword [ebx + 8]
add esp, 0xc
cmp ecx, dword [edi + 0x1a4]
jne 0x40787a
mov edx, dword [ebp + 8]
mov ecx, edi
mov dword [ebx + 8], 0
call fcn.00405a70
mov ecx, esi
call fcn.00405db0
jmp 0x407484
xor edx, edx
mov ecx, edi
call fcn.00405b50
mov ebx, eax
mov edx, 0xe
push 0
push ebx
push ebx
mov ecx, edi
call fcn.004043b0
add esp, 0xc
lea ecx, [edi + 0x48]
mov edx, 0xf
push 0
push ecx
push ebx
mov ecx, edi
call fcn.004043b0
mov eax, dword [ebx + 8]
add esp, 0xc
cmp eax, dword [edi + 0x1a4]
jne 0x40787a
mov edx, dword [ebp + 8]
mov ecx, edi
mov dword [ebx + 8], 0
call fcn.00405a70
mov ecx, esi
call fcn.00405db0
jmp 0x407484
lea eax, [edi + 0x48]
mov edx, 0x10
push 0
push eax
push eax
mov ecx, edi
call fcn.004043b0
add esp, 0xc
mov edx, dword [ebp + 8]
mov ecx, edi
call fcn.00405a70
mov ecx, esi
call fcn.00405db0
jmp 0x407484
push 0x732
push ecx
push str.JIT_ERROR__d__jit.c_line__d__n
call fcn.00401010
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4078ae
int3
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov eax, dword [ebp + 8]
push 0x740
mov eax, dword [eax + 8]
push dword [eax]
push str.JIT_ERROR__d__jit.c_line__d__n
call fcn.00401010
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4078db
int3
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov eax, dword [ebx + 0x14]
mov edx, 2
mov dword [ebp - 0x14], eax
mov ecx, edi
mov eax, dword [ebp + 0xc]
push 0
push dword [edi + 4]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x14]
push eax
call fcn.00406c40
mov edx, dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fmod]
add esp, 0xc
cmp byte [ebp - 5], 0
mov ecx, 0x4041b0
cmovne edx, ecx
mov ecx, edi
push eax
call fcn.00406db0
mov ebx, dword [ebp - 0xc]
add esp, 4
mov edx, ebx
mov ecx, edi
call fcn.004065a0
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x40749c
pop edi
pop esi
lea eax, [ebx + 0x10]
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edx]
cmp eax, 0x62
ja 0x407958
mov eax, dword [eax*4 + 0x4137e8]
jmp 0x40795d
mov eax, str.UnknownOp
push eax
push 0x414170
call fcn.00401010
mov ebx, dword [ebp + 0x10]
push 0x660
push dword [ebx]
push str.JIT_ERROR__d__jit.c_line__d__n
call fcn.00401010
add esp, 0x14
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x40798a
int3
push 0xffffffffffffffff
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
nop
je 0x407a08
inc eax
add byte [esi + 0x72], bh
inc eax
add byte [eax - 0x5cffbf8e], cl
je 0x4079e3
add dh, dl
jae 0x4079e7
add byte [edx - 0x63ffbf8e], dl
jb 0x4079ef
add byte [esi - 0x4fffbf8e], ah
jb 0x4079f7
add byte [edi], cl
jbe 0x4079fb
add byte [eax], al
add dword [edx], eax
add eax, dword [ebx]
add eax, dword [ebx]
add al, 4
add al, 5
push es
pop es
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or dword [ecx], ecx
or byte [eax], cl
nop
push dword [edx + 0x40]
add byte [eax], dl
jae 0x407a37
add byte [ecx], ah
jae 0x407a3b
add byte [edx], dh
jae 0x407a3f
add bl, ah
js 0x407a43
add byte [ebx + 0x73], al
inc eax
add byte [eax + 0x79], cl
inc eax
dec eax
jns 4225611
add byte [eax], al
add dword [edx], eax
add eax, dword [esi]
add al, 6
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add eax, 100992261
push es
add eax, 0x5060605
add eax, 1720714501
jae 4225667
add eax, 0x90050505
nop
jae 0x407a83
add dl, ah
jbe 0x407a87
add byte [esi + 0x4078], dh
add byte [eax], al
add byte [eax], al
add al, byte [ecx]
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add al, byte [eax]
add al, byte [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
nop dword [eax]
mov esi, 0x8004077
js 4225707
add byte [eax + edi*2 + 0x40], ah
add byte [eax + 0x4078], dl
add dword [ebx], eax
add al, byte [ebx]
add eax, dword [eax]
add dword [edx], eax
add cl, ah
int3
ror byte [ebx - 0x77ca80f], 1
or cl, byte [edi]
xchg dword [eax], ebx
add dword [eax], eax
add bh, bh
jmp dword [eax*4 + 0x407bc4]
mov eax, dword [esi]
mov byte [eax], 0xe9
add bh, al
add byte [eax], al
add byte [eax], al
add byte [ebx + 0x40683c7], cl