Function at 0x401120
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x354
push ebx
push esi
push edi
xor eax, eax
mov ecx, 0x11
lea edi, [esp + 0x44]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
push 0x40c2ac
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
call fcn.0040246c
push 0x40c268
call fcn.0040246c
mov eax, dword [ebp + 8]
add esp, 8
cmp eax, 2
jl 0x401978
cmp eax, 3
jg 0x401978
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 4]
push eax
call fcn.0040ad6d
mov ecx, dword [ebx + 4]
push ecx
call fcn.0040ad6d
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x160]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x2e
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x164]
push ecx
call fcn.004023b0
add esp, 0x10
test eax, eax
jne 0x4011ed
lea edi, [esp + 0x158]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [0x40c260]
not ecx
dec ecx
lea edx, [esp + ecx + 0x158]
mov cl, byte [0x40c264]
mov dword [edx], eax
mov byte [edx + 4], cl
lea edx, [esp + 0x248]
lea eax, [esp + 0x158]
push edx
push 0
push eax
call fcn.004010d0
add esp, 0xc
lea ecx, [esp + 0x158]
push 0x5c
push ecx
call fcn.00402370
mov edx, eax
add esp, 8
test edx, edx
je 0x401222
inc edx
jmp 0x401244
lea edx, [esp + 0x158]
push 0x3a
push edx
call fcn.00402370
mov edx, eax
add esp, 8
test edx, edx
je 0x40123d
inc edx
jmp 0x401244
lea edx, [esp + 0x158]
lea edi, [esp + 0x25c]
or ecx, 0xffffffff
xor eax, eax
push 0x40c25c
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x15c]
push ecx
call fcn.00402358
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
je 0x401953
cmp dword [ebp + 8], 3
jne 0x4012a6
mov edx, dword [ebx + 8]
push edx
call fcn.0040ad6d
add esp, 4
lea edx, [esp + 0x1d0]
mov edi, eax
jmp 0x4012b4
lea edi, [esp + 0x158]
lea edx, [esp + 0x1d0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x2e
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1d4]
push ecx
call fcn.00402370
add esp, 8
test eax, eax
jne 0x401305
lea edi, [esp + 0x1d0]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, dword [0x40c030]
not ecx
dec ecx
lea edx, [esp + ecx + 0x1d0]
jmp 0x40131f
mov edi, dword [0x40c030]
lea ecx, [esp + 0x1d0]
push 0x2e
push ecx
call fcn.00402370
add esp, 8
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x158]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1d0]
push ecx
push edx
push 0x40c230
call fcn.0040246c
mov edi, dword [esp + 0x28]
add esp, 0xc
mov byte [esp + 0x13], 2
test byte [edi + 0xc], 0x10
jne 0x40147e
mov ebx, 1
push edi
lea eax, [esp + 0xe4]
push 0x78
push eax
call section..text
push 4
lea ecx, [esp + 0xf0]
push 0x40c228
push ecx
call fcn.0040acc0
add esp, 0x18
test eax, eax
jne 0x4013a3
mov byte [esp + 0x13], 1
jmp 0x40141e
push 5
lea edx, [esp + 0xe5]
push 0x40c220
push edx
call fcn.00402300
add esp, 0xc
test eax, eax
je 0x40142a
cmp byte [esp + 0xe0], 0x23
jne 0x40141e
lea esi, [esp + 0xe1]
cmp dword [0x40c4fc], ebx
jle 0x4013e7
movsx eax, byte [esi]
push 8
push eax
call fcn.0040227d
add esp, 8
jmp 0x4013f6
movsx ecx, byte [esi]
mov edx, dword [0x40c2f0]
mov al, byte [edx + ecx*2]
and eax, 8
test eax, eax
je 0x4013fd
inc esi
jmp 0x4013cf
cmp byte [esi], 0x44
jne 0x40140a
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4013cf
push 5
push 0x40c218
push esi
call fcn.00402300
add esp, 0xc
test eax, eax
je 0x401457
test byte [edi + 0xc], 0x10
je 0x401371
jmp 0x40147e
push edi
lea eax, [esp + 0xe4]
push 0x78
push eax
call section..text
push edi
lea ecx, [esp + 0xf0]
push 0x78
push ecx
call section..text
add esp, 0x18
mov dword [esp + 0x24], 0
jmp 0x40147e
push edi
lea edx, [esp + 0xe4]
push 0x78
push edx
call section..text
push edi
lea eax, [esp + 0xf0]
push 0x78
push eax
call section..text
add esp, 0x18
mov dword [esp + 0x24], ebx
lea ecx, [esp + 0x1d0]
push 0x40c214
push ecx
xor ebx, ebx
call fcn.00402358
add esp, 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
mov edi, 1
mov eax, dword [esp + 0x24]
test eax, eax
je 0x40153c
lea edx, [esp + 0x38]
lea eax, [esp + 0x30]
push edx
lea ecx, [esp + 0x90]
push eax
lea edx, [esp + 0x28]
push ecx
push edx
lea eax, [esp + 0xf1]
push 0x40c204
push eax
call fcn.00401bc2
add esp, 0x18
cmp eax, 4
jge 0x401689
lea esi, [esp + 0xe0]
cmp dword [0x40c4fc], edi
jle 0x401502
movsx ecx, byte [esi]
push 8
push ecx
call fcn.0040227d
add esp, 8
jmp 0x401510
movsx edx, byte [esi]
mov eax, dword [0x40c2f0]
mov al, byte [eax + edx*2]
and eax, 8
test eax, eax
je 0x401517
inc esi
jmp 0x4014ea
cmp byte [esi], 0x23
jne 0x4018f4
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0xe0]
push ecx
push 0x78
push edx
call section..text
add esp, 0xc
jmp 0x4014a2
mov al, byte [esp + 0xe0]
lea esi, [esp + 0xe0]
test al, al
je 0x401581
cmp dword [0x40c4fc], edi
jle 0x401566
movsx eax, byte [esi]
push 4
push eax
call fcn.0040227d
add esp, 8
jmp 0x401575
movsx ecx, byte [esi]
mov edx, dword [0x40c2f0]
mov al, byte [edx + ecx*2]
and eax, 4
test eax, eax
jne 0x401581
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x40154e
cmp dword [0x40c4fc], edi
jle 0x401599
movsx eax, byte [esi]
push 4
push eax
call fcn.0040227d
add esp, 8
jmp 0x4015a8
movsx ecx, byte [esi]
mov edx, dword [0x40c2f0]
mov al, byte [edx + ecx*2]
and eax, 4
test eax, eax
je 0x4018f4
push esi
call fcn.00402230
mov al, byte [esi]
add esp, 4
fstp qword [esp + 0x38]
test al, al
je 0x4015cf
cmp al, 0x2c
je 0x4015cf
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4015c3
cmp dword [0x40c4fc], edi
jle 0x4015e7
movsx eax, byte [esi]
push 4
push eax
call fcn.0040227d
add esp, 8
jmp 0x4015f6
movsx ecx, byte [esi]
mov edx, dword [0x40c2f0]
mov al, byte [edx + ecx*2]
and eax, 4
test eax, eax
jne 0x4015fd
inc esi
jmp 0x4015cf
cmp dword [0x40c4fc], edi
jle 0x401615
movsx eax, byte [esi]
push 4
push eax
call fcn.0040227d
add esp, 8
jmp 0x401624
movsx ecx, byte [esi]
mov edx, dword [0x40c2f0]
mov al, byte [edx + ecx*2]
and eax, 4
test eax, eax
je 0x4018f4
push esi
call fcn.00402230
mov al, byte [esi]
add esp, 4
fstp qword [esp + 0x30]
test al, al
je 0x40164b
cmp al, 0x2c
je 0x40164b
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x40163f
mov al, byte [esi + 1]
inc esi
test al, al
je 0x40165f
cmp al, 0x20
jne 0x40165f
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x401653
mov al, byte [esi]
inc esi
mov byte [esp + 0x8c], al
mov al, byte [esi]
test al, al
je 0x40167b
cmp al, 0x44
je 0x40167b
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x40166f
inc esi
push esi
call fcn.00402225
add esp, 4
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x1c]
test byte [ecx + 0xc], 0x10
jne 0x4018f4
movsx esi, byte [esp + 0x13]
mov eax, esi
inc ebx
sub eax, 0
je 0x4016e8
dec eax
je 0x4016c9
dec eax
jne 0x40170e
fld qword [esp + 0x30]
fmul qword [0x40b0f0]
call fcn.004024f0
fld qword [esp + 0x38]
fmul qword [0x40b0f0]
mov dword [esp + 0x14], eax
jmp 0x401705
fld qword [esp + 0x30]
fmul qword [0x40b0e8]
call fcn.004024f0
fld qword [esp + 0x38]
fmul qword [0x40b0e8]
mov dword [esp + 0x14], eax
jmp 0x401705
fld qword [esp + 0x30]
fmul qword [0x40b0e0]
call fcn.004024f0
fld qword [esp + 0x38]
fmul qword [0x40b0e0]
mov dword [esp + 0x14], eax
call fcn.004024f0
mov dword [esp + 0x18], eax
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0xa0]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x40177d
mov edx, dword [esp + 0x8c]
and edx, 0xff
lea eax, [edx - 0x43]
cmp eax, 0xf
ja case.0x401743.71
xor ecx, ecx
mov cl, byte [eax + 0x4019ec]
jmp dword [ecx*4 + 0x4019d8]
xor eax, eax
jmp 0x4017c2
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
xor eax, eax
cmp edi, edx
setne al
add eax, 3
jmp 0x4017c2
mov eax, 1
jmp 0x4017c2
mov eax, 5
jmp 0x4017c2
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
xor eax, eax
jmp 0x4017c2
mov eax, dword [esp + 0x8d]
and eax, 0xff
push eax
call fcn.004020ce
add eax, 0xffffffbe
add esp, 4
cmp eax, 0x14
ja case.0x4017a2.70
xor ecx, ecx
mov cl, byte [eax + 0x401a10]
jmp dword [ecx*4 + 0x4019fc]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
xor eax, eax
cmp edx, edi
setne al
add eax, 3
jmp 0x4017c2
mov eax, 9
mov edx, 1
cmp ebx, edx
jne 0x40185a
mov ecx, esi
xor esi, esi
sub ecx, esi
mov word [esp + 0x44], 0xf7
je 0x4017f2
dec ecx
je 0x4017eb
dec ecx
jne 0x4017f7
mov byte [esp + 0x48], 0
jmp 0x4017f7
mov byte [esp + 0x48], 1
jmp 0x4017f7
mov byte [esp + 0x48], 2
mov cx, word [esp + 0x20]
cmp eax, 9
mov word [esp + 0x46], dx
mov word [esp + 0x4e], cx
mov word [esp + 0x50], dx
mov word [esp + 0x52], si
mov byte [esp + 0x4a], al
je 0x40182b
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], eax
jmp 0x401849
lea ecx, [esp + 0xe0]
push 0x1e
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.00401fd0
add esp, 0xc
mov dword [esp + 0x86], esi
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x44]
push eax
push ecx
call fcn.00401090
jmp 0x4018d5
mov dx, word [esp + 0x20]
lea ecx, [ebx - 1]
cmp eax, 9
mov word [esp + 0xa4], dx
mov word [esp + 0xa6], bx
mov word [esp + 0xa8], cx
mov byte [esp + 0xa0], al
je 0x40189e
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [esp + 0xaa], edx
mov dword [esp + 0xae], eax
jmp 0x4018c3
lea ecx, [esp + 0xe0]
push 0x1e
lea edx, [esp + 0xae]
push ecx
push edx
call fcn.00401fd0
add esp, 0xc
mov dword [esp + 0xdc], 0
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xa0]
push eax
push ecx
call fcn.004010b0
mov edx, dword [esp + 0x24]
add esp, 8
lea eax, [esp + 0xe0]
push edx
push 0x78
push eax
call section..text
add esp, 0xc
jmp 0x40149d
mov esi, dword [esp + 0x28]
push 0
push 0
push esi
call fcn.00401f41
lea ecx, [esp + 0x50]
push esi
push ecx
mov word [esp + 0x5a], bx
call fcn.00401090
movsx eax, word [esp + 0x5a]
mov edx, dword [esp + 0x40]
push edx
push eax
push 0x40c1d8
call fcn.0040246c
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00401eeb
push esi
call fcn.00401eeb
lea edx, [esp + 0x270]
push edx
call fcn.00401100
add esp, 0x2c
test eax, eax
jne 0x40196f
mov ebx, dword [ebp + 0xc]
jmp 0x401207
lea eax, [esp + 0x158]
push eax
push 0x40c1b8
call fcn.0040246c
add esp, 8
push 1
call fcn.00401e16
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push 0x40c188
call fcn.0040246c
push 0x40c150
call fcn.0040246c
push 0x40c114
call fcn.0040246c
mov ecx, dword [0x40c030]
push ecx
push 0x40c0d4
call fcn.0040246c
mov edx, dword [0x40c030]
push edx
push 0x40c0a4
call fcn.0040246c
push 0x40c084
call fcn.0040246c
push 0x40c048
call fcn.0040246c
add esp, 0x24
push 1
call fcn.00401e16
mov edi, edi
bound edx, qword [edi]
inc eax
add byte [edx + 0x17], cl
inc eax
add byte [ecx + 0x17], ch
inc eax
add byte [esi + 0x17], cl
inc eax
add byte [eax + 0x17], dh
inc eax
add byte [eax], al
add al, 4
add al, 4
add al, 4
add al, 4
add dword [esp + eax], eax
add al, byte [esp + eax]
add ebp, dword [ecx + 0x17]
inc eax
add byte [ecx + 0x4a004017], ch
pop ss
inc eax
add byte [edx + 0x17], ah
inc eax
add byte [ebp + 0x4017], bh
add al, 4
add dword [esp + eax], eax
add al, 2
add al, 4
add al, 4
add al, 3
add al, 1
add al, 4
add al, 4
add byte [eax - 0x6f6f6f70], dl
nop
nop
nop
nop
nop
nop