Function at 0x403840
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x334
pxor xmm0, xmm0
movdqu xmmword [esp + 0x2d0], xmm0
movdqu xmmword [esp + 0x2e0], xmm0
movdqu xmmword [esp + 0x2f0], xmm0
movdqu xmmword [esp + 0x300], xmm0
movdqu xmmword [esp + 0x310], xmm0
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x4045bd
cmp dword [0x4466a0], 0
je 0x404530
cmp byte [ebx], 0x40
je 0x4044cc
mov edx, ebx
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4038c7
mov eax, edx
add edx, ecx
call fcn.00409f00
mov esi, eax
test esi, esi
jle 0x4038d8
cmp byte [esi + ebx - 1], 0x5c
je 0x404482
xor edi, edi
mov eax, dword [0x4467b0]
mov ecx, dword [0x4430d0]
test eax, eax
jl 0x4038f5
cmp ecx, dword [0x4467ac]
jle 0x4038fc
test eax, eax
jne 0x4038fc
mov esi, 1
jmp 0x403900
xor eax, eax
xor esi, esi
cmp dword [0x447e20], 0
jl 0x40446d
xor eax, eax
cmp ecx, dword [0x4467ac]
mov ecx, 1
cmovle ecx, eax
mov dword [esp + 0x24], ecx
cmp byte [0x447d20], 0
je 0x403967
push 0
push 4
call fcn.00419970
add esp, 8
mov ecx, eax
lea edx, [esp + 0x138]
test cl, 3
je 0x403953
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x403958
inc edx
test cl, 3
jne 0x403944
call fcn.004096b0
push 0x447d20
push 4
call fcn.00419970
add esp, 8
test esi, esi
je 0x403c25
call fcn.004021f0
movq xmm0, qword [0x431860]
lea esi, [ebp + 0xc]
mov ecx, dword [0x4466a0]
movq xmm1, qword [eax]
por xmm1, xmm0
movq qword [esp], xmm1
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], esi
call fcn.00416be3
cmp dword [0x4467b4], 0
je 0x403aa2
mov esi, dword [0x4466a0]
mov edx, esi
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4039ec
mov eax, edx
add edx, ecx
call fcn.00409f00
mov edx, eax
test edx, edx
jle 0x403aa2
xor eax, eax
mov ecx, 0x443080
mov dword [esp + 0x20], edi
mov edi, eax
mov dword [esp + 0x28c], ebx
mov ebx, edx
mov eax, 0x443080
movzx edx, byte [esi]
mov ecx, eax
and ecx, 0xf
and eax, 0xfffffff0
push eax
pxor xmm2, xmm2
movd xmm1, edx
punpcklbw xmm1, xmm1
punpcklbw xmm1, xmm1
pshufd xmm1, xmm1, 0
movdqa xmm0, xmmword [eax]
pcmpeqb xmm2, xmm0
pcmpeqb xmm0, xmm1
pmovmskb edx, xmm0
pmovmskb eax, xmm2
shr edx, cl
shr eax, cl
test edx, edx
jne 0x403a54
test eax, eax
je 0x403a6c
jmp 0x403a67
bsf edx, edx
bsf eax, eax
je 0x403a60
cmp edx, eax
jg 0x403a67
pop eax
add eax, ecx
add eax, edx
jmp 0x403a72
pop edx
xor eax, eax
jmp 0x403a72
pop eax
call fcn.0040a150
mov dword [0x4466a4], eax
test eax, eax
je 0x403a8d
mov ecx, 0x443080
lea eax, [eax + 0x431790]
sub eax, ecx
movzx ecx, byte [eax]
mov byte [esi], cl
inc edi
inc esi
cmp edi, ebx
jl 0x403a0c
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x28c]
cmp byte [esp + 0x2d0], 0
jne 0x403abb
cmp dword [0x447e20], 0
jl 0x403f18
jmp 0x403b0e
push 1
call fcn.00416e97
mov esi, eax
add esp, 4
mov dword [esp + 0x278], 0x431b28
lea eax, [esp + 0x2d0]
mov dword [eax - 0x54], eax
call fcn.004021f0
lea ecx, [esp + 0x27c]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0x431b28
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call fcn.00416b39
push 1
call fcn.00416e97
mov esi, eax
add esp, 4
mov eax, dword [0x4466a0]
mov dword [esp + 0x320], 0x431494
mov dword [esp + 0x324], eax
call fcn.004021f0
lea ecx, [esp + 0x324]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0x431494
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call fcn.00416b39
test edi, edi
jne 0x403bb0
push 1
call fcn.00416e97
mov esi, eax
add esp, 4
mov dword [esp + 0x284], 0x431500
call fcn.004021f0
lea ecx, [esp + 0x288]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0x431500
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call fcn.00416b39
mov esi, dword [0x447d10]
test esi, esi
je 0x403c15
cmp byte [esi], 0
je 0x403c15
push 1
call fcn.00416e97
mov dword [esp + 0x24], eax
add esp, 4
mov dword [esp + 0x270], esi
mov dword [esp + 0x26c], str.______s__n
call fcn.004021f0
lea esi, [esp + 0x270]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov ecx, dword [esp + 0x20]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], str.______s__n
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], esi
call fcn.00416b39
push 1
call fcn.00416e97
push eax
call fcn.00419c9b
add esp, 8
mov esi, dword [0x447e24]
test esi, esi
je 0x403d73
cmp dword [esp + 0x24], 0
je 0x403d73
cmp dword [0x447e20], 0
jl 0x404425
cmp byte [esp + 0x2d0], 0
je 0x403ca2
mov dword [esp + 0x2a4], 0x431b28
lea eax, [esp + 0x2d0]
mov dword [eax - 0x28], eax
call fcn.004021f0
lea ecx, [esp + 0x2a8]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0x431b28
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call fcn.00416b39
mov esi, dword [0x447e24]
call fcn.004021f0
lea ecx, [ebp + 0xc]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call fcn.00416b39
test edi, edi
jne 0x403d10
mov esi, 0x431500
mov dword [esp + 0x2c4], esi
call fcn.004021f0
mov ecx, dword [0x447e24]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
lea esi, [esp + 0x2c8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], esi
call fcn.00416b39
mov eax, dword [0x447d10]
test eax, eax
je 0x403d65
cmp byte [eax], 0
je 0x403d65
mov esi, str.______s__n
mov dword [esp + 0x29c], eax
mov dword [esp + 0x298], esi
call fcn.004021f0
mov ecx, dword [0x447e24]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
lea esi, [esp + 0x29c]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], esi
call fcn.00416b39
push dword [0x447e24]
call fcn.00419c9b
add esp, 4
cmp byte [0x447d20], 0
je 0x403d8e
lea eax, [esp + 0x138]
push eax
push 4
call fcn.00419970
add esp, 8
test edi, edi
jne 0x403de7
mov eax, dword [0x443094]
mov dword [0x447d10], 0
cmp eax, 0xffffff9d
je 0x403dab
mov dword [0x4467b0], eax
mov eax, dword [0x443090]
cmp eax, 0xffffff9d
je 0x403dba
mov dword [0x4430d0], eax
mov eax, dword [0x4467a8]
cmp eax, 0xffffff9d
je 0x403dcb
mov dword [0x4467ac], eax
jmp 0x403dd5
mov dword [0x4467ac], 0
mov eax, dword [0x447e20]
add esp, 0x334
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [str.IBJmsg]
test ebx, ebx
je 0x403d92
mov esi, str._s._s._d
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x2b0], esi
mov dword [esp + 0x2b8], str.vMsg
mov dword [esp + 0x2bc], 0x288
call fcn.004021f0
movq xmm0, qword [0x431860]
lea ecx, [esp + 0x38]
movq xmm1, qword [eax]
por xmm1, xmm0
movq qword [esp], xmm1
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], esi
lea esi, [esp + 0x2b4]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], esi
call fcn.00416be3
mov eax, dword [0x446788]
mov edi, dword [0x446780]
mov esi, dword [0x446784]
mov dword [esp + 0x2cc], eax
test edi, edi
je 0x403fe2
cmp esi, dword [esp + 0x2cc]
jge 0x403fe2
cmp dword [esp + 0x2cc], 0
jle 0x403eb6
mov eax, dword [0x446790]
xor ecx, ecx
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x2cc]
cmp ebx, dword [eax + ecx*4]
je 0x403f66
inc ecx
cmp ecx, edx
jl 0x403ea8
push 2
call fcn.00416e97
mov edi, eax
add esp, 4
mov esi, dword [str.MSG:_Invalid_FREE_for_p_d_n_______s__n]
lea eax, [esp + 0x38]
mov dword [eax - 0x18], esi
mov dword [eax - 0x14], ebx
mov dword [eax - 0x10], eax
call fcn.004021f0
lea edx, [esp + 0x24]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
xor eax, eax
call fcn.00404c20
push 4
mov dword [0x447e20], 0xfffffffc
call fcn.004171d6
push 1
call fcn.00416e97
mov esi, eax
add esp, 4
mov dword [esp + 0x238], 0x431b2c
call fcn.004021f0
lea ecx, [esp + 0x23c]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0x431b2c
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call fcn.00416b39
jmp 0x403b0e
push ebx
mov dword [esp + 0x24], ecx
call fcn.0041850b
mov ecx, dword [esp + 0x24]
add esp, 4
dec esi
mov dword [0x446784], esi
pxor xmm0, xmm0
mov esi, dword [0x446798]
mov edx, dword [0x44679c]
mov ebx, dword [esp + 0x24]
mov eax, dword [esi + ecx*4]
movq qword [edx + ecx*8], xmm0
movd xmm2, dword [edi + ecx*4]
mov byte [eax], 0
mov eax, dword [edi + ecx*4]
cdq
mov dword [ebx + ecx*4], 0
movq xmm3, qword [0x446770]
mov dword [edi + ecx*4], 0
movd xmm1, edx
punpckldq xmm2, xmm1
mov ebx, dword [0x4467a0]
psubq xmm3, xmm2
mov dword [ebx + ecx*4], 0
movq qword [0x446770], xmm3
jmp 0x403d92
mov ecx, dword [0x44679c]
mov edx, eax
mov dword [esp + 0x25c], ecx
mov ecx, edx
mov eax, dword [0x446790]
sar ecx, 0x1f
mov dword [esp + 0x250], eax
not ecx
mov eax, dword [0x4467a0]
and ecx, edx
mov dword [esp + 0x24c], eax
cmp esi, ecx
mov eax, dword [0x446798]
mov dword [esp + 0x248], eax
mov eax, dword [0x4467a4]
mov dword [esp + 0x254], eax
lea eax, [esi + 0xfa0]
cmovge ecx, eax
mov dword [esp + 0x258], edi
mov dword [esp + 0x260], ecx
cmp ecx, edx
jle 0x403e8c
push 4
push dword [esp + 0x264]
call fcn.00418526
mov edi, eax
push 4
push dword [esp + 0x26c]
mov dword [0x446780], edi
call fcn.00418526
mov dword [esp + 0x254], eax
push 8
push dword [esp + 0x274]
mov dword [0x446790], eax
call fcn.00418526
mov dword [esp + 0x258], eax
push 4
push dword [esp + 0x27c]
mov dword [0x44679c], eax
call fcn.00418526
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x280]
shl ecx, 8
push ecx
push 1
mov dword [0x4467a0], eax
call fcn.00418526
mov dword [esp + 0x58], eax
push 4
push dword [esp + 0x28c]
mov dword [0x4467a4], eax
call fcn.00418526
mov dword [esp + 0x5c], eax
add esp, 0x30
mov dword [0x446798], eax
test edi, edi
je 0x404388
cmp dword [esp + 0x244], 0
je 0x404388
cmp dword [esp + 0x240], 0
je 0x404388
cmp dword [esp + 0x2c], 0
je 0x404388
cmp dword [esp + 0x30], 0
je 0x404388
cmp dword [esp + 0x260], 0
jle 0x404262
cmp dword [esp + 0x260], 4
jl 0x40437b
and eax, 0xf
mov dword [esp + 0x20], eax
je 0x404157
test byte [esp + 0x20], 3
jne 0x40437b
neg eax
add eax, 0x10
shr eax, 2
mov dword [esp + 0x20], eax
lea ecx, [eax + 4]
cmp ecx, dword [esp + 0x260]
jg 0x40437b
mov edx, eax
mov eax, dword [esp + 0x260]
mov ecx, eax
sub ecx, edx
and ecx, 3
neg ecx
add ecx, eax
mov dword [esp + 0x28], ecx
test edx, edx
jbe 0x4041b3
mov ecx, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x28c], ebx
mov edx, ecx
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x2c]
mov dword [ebx + eax*4], edx
inc eax
add edx, 0x100
cmp eax, ecx
jb 0x40419a
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 0x28c]
mov eax, dword [esp + 0x20]
shl eax, 8
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
movdqu xmm1, xmmword [0x431810]
lea ecx, [edi + eax]
movd xmm0, ecx
lea ecx, [edi + eax + 0x100]
mov edi, dword [esp + 0x24]
lea eax, [ecx + 0x100]
movd xmm2, ecx
add ecx, 0x200
movd xmm4, eax
punpckldq xmm0, xmm2
mov eax, dword [esp + 0x28]
movd xmm3, ecx
punpckldq xmm4, xmm3
mov ecx, dword [esp + 0x20]
punpcklqdq xmm0, xmm4
movdqu xmmword [edx + ecx*4], xmm0
add ecx, 4
paddd xmm0, xmm1
cmp ecx, eax
jb 0x40420c
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov eax, ecx
shl eax, 8
add dword [esp + 0x30], eax
cmp ecx, dword [esp + 0x260]
jae 0x404262
mov dword [esp + 0x28c], ebx
mov eax, dword [esp + 0x30]
mov edx, ecx
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x260]
mov dword [ecx + edx*4], eax
inc edx
add eax, 0x100
cmp edx, ebx
jb 0x40424e
mov ebx, dword [esp + 0x28c]
test esi, esi
je 0x404363
cmp dword [esp + 0x2cc], 0
jle 0x404318
xor eax, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x28c], ebx
mov ebx, eax
mov esi, dword [esp + 0x248]
mov edx, dword [esp + 0x25c]
mov ecx, dword [esp + 0x240]
movq xmm0, qword [edx + ebx*8]
mov edx, dword [esp + 0x258]
movq qword [ecx + ebx*8], xmm0
mov ecx, dword [esp + 0x244]
mov edx, dword [edx + ebx*4]
mov dword [edi + ebx*4], edx
mov edx, dword [esp + 0x250]
mov edx, dword [edx + ebx*4]
mov dword [ecx + ebx*4], edx
mov edx, dword [esp + 0x24c]
mov ecx, dword [esp + 0x34]
mov edx, dword [edx + ebx*4]
mov dword [ecx + ebx*4], edx
mov edx, dword [esi + ebx*4]
cmp byte [edx], 0
je 0x404303
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + ebx*4]
mov edx, dword [edx + ebx*4]
test cl, 3
je 0x4042fe
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x404303
inc edx
test cl, 3
jne 0x4042ef
call fcn.004096b0
inc ebx
cmp ebx, dword [esp + 0x2cc]
jl 0x40428e
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x28c]
push dword [esp + 0x258]
call fcn.0041850b
push dword [esp + 0x254]
call fcn.0041850b
push dword [esp + 0x264]
call fcn.0041850b
push dword [esp + 0x258]
call fcn.0041850b
push dword [esp + 0x264]
call fcn.0041850b
push dword [esp + 0x25c]
call fcn.0041850b
add esp, 0x18
mov eax, dword [esp + 0x260]
mov dword [0x446788], eax
mov dword [esp + 0x2cc], eax
jmp 0x403e8c
mov dword [esp + 0x28], 0
jmp 0x404220
push 2
call fcn.00416e97
mov ebx, eax
add esp, 4
mov esi, dword [str.MSG:_Cant_create_allocation_tables_with__d_entries_n]
mov eax, dword [esp + 0x260]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], eax
call fcn.004021f0
lea edx, [esp + 0x30]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
mov ebx, dword [0x447e24]
test ebx, ebx
je 0x40441e
mov esi, dword [str.MSG:_Cant_create_allocation_tables_with__d_entries_n]
mov eax, dword [esp + 0x260]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], eax
call fcn.004021f0
lea edx, [esp + 0x24]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
push 1
call fcn.004171d6
mov dword [esp + 0x264], 0x431b2c
call fcn.004021f0
lea ecx, [esp + 0x268]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0x431b2c
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call fcn.00416b39
mov esi, dword [0x447e24]
jmp 0x403c4b
xor eax, eax
test ecx, ecx
mov ecx, 1
cmovl ecx, eax
mov dword [esp + 0x24], ecx
jmp 0x403921
mov ecx, str.vMsg
lea eax, [esi + 1]
mov edx, dword [str.IBJmsg]
mov dword [esp + 0xc], 0x254
call fcn.00404fec
mov ebx, eax
mov edx, ebx
mov ecx, dword [ebp + 8]
test cl, 3
je 0x4044b8
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x4044bd
inc edx
test cl, 3
jne 0x4044a9
call fcn.004096b0
mov byte [ebx + esi - 1], 0
mov edi, 1
jmp 0x4038da
push 0
call fcn.004185b4
mov dword [esp + 0x294], eax
lea eax, [esp + 0x294]
mov dword [eax + 4], edx
push eax
call fcn.00418883
push eax
push str._Y__m__d__H:_M:_S
push 0x4f
push 0x446720
call fcn.00418ac6
add esp, 0x18
mov ecx, 0x446720
lea edx, [esp + 0x2d0]
test cl, 3
je 0x40451f
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x404524
inc edx
test cl, 3
jne 0x404510
call fcn.004096b0
mov ebx, dword [ebp + 8]
inc ebx
mov dword [ebp + 8], ebx
jmp 0x4038a1
mov ecx, str.vMsg
mov eax, dword [0x4430dc]
mov edx, dword [str.IBJmsg]
mov dword [esp + 0xc], 0x246
call fcn.00404fec
mov dword [0x4466a0], eax
test eax, eax
je 0x40455e
mov ebx, dword [ebp + 8]
jmp 0x403898
mov ebx, dword [str.MSG:_Cant_allocate_message_buffer___d_bytes___n]
mov eax, dword [0x4430dc]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], eax
push 1
call fcn.00416e97
mov esi, eax
add esp, 4
call fcn.004021f0
lea edx, [esp + 0x24]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
push 1
call fcn.00416e97
push eax
call fcn.00419c9b
add esp, 8
jmp 0x40441e
mov edi, dword [0x4466a0]
test edi, edi
jne 0x4045e0
mov dword [0x4466a0], 0
xor eax, eax
add esp, 0x334
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [str.IBJmsg]
mov ebx, str._s._s._d
mov dword [esp + 0x16c], eax
mov dword [esp + 0x168], ebx
mov dword [esp + 0x170], str.vMsg
mov dword [esp + 0x174], 0x241
call fcn.004021f0
movq xmm0, qword [0x431860]
lea edx, [esp + 0x38]
lea ecx, [esp + 0x16c]
movq xmm1, qword [eax]
por xmm1, xmm0
movq qword [esp], xmm1
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], ecx
call fcn.00416be3
mov ebx, dword [0x446780]
mov esi, dword [0x446784]
mov edx, dword [0x446788]
test ebx, ebx
je 0x404759
cmp esi, edx
jge 0x404759
test edx, edx
jle 0x40468b
mov eax, dword [0x446790]
xor ecx, ecx
cmp edi, dword [eax + ecx*4]
je 0x4046da
inc ecx
cmp ecx, edx
jl 0x404681
push 2
call fcn.00416e97
mov esi, eax
add esp, 4
mov ebx, dword [str.MSG:_Invalid_FREE_for_p_d_n_______s__n]
lea eax, [esp + 0x38]
mov dword [eax - 0x18], ebx
mov dword [eax - 0x14], edi
mov dword [eax - 0x10], eax
call fcn.004021f0
lea edx, [esp + 0x24]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
jmp 0x403f00
push edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
call fcn.0041850b
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
add esp, 4
mov edx, dword [0x4467a0]
dec esi
pxor xmm0, xmm0
mov dword [eax + ecx*4], 0
mov eax, dword [0x44679c]
mov dword [edx + ecx*4], 0
mov dword [0x446784], esi
movq qword [eax + ecx*8], xmm0
mov eax, dword [ebx + ecx*4]
cdq
mov esi, dword [0x446798]
movd xmm2, dword [ebx + ecx*4]
movq xmm3, qword [0x446770]
movd xmm1, edx
punpckldq xmm2, xmm1
mov edi, dword [esi + ecx*4]
psubq xmm3, xmm2
mov byte [edi], 0
mov dword [ebx + ecx*4], 0
movq qword [0x446770], xmm3
jmp 0x4045c7
mov eax, dword [0x446790]
mov dword [esp + 0x158], eax
mov eax, dword [0x4467a0]
mov dword [esp + 0x160], eax
mov eax, dword [0x4467a4]
mov dword [esp + 0x150], eax
mov eax, edx
sar eax, 0x1f
not eax
mov ecx, dword [0x44679c]
and eax, edx
mov dword [esp + 0x154], ecx
cmp esi, eax
mov ecx, dword [0x446798]
mov dword [esp + 0x164], ecx
lea ecx, [esi + 0xfa0]
cmovge eax, ecx
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x14c], eax
cmp eax, edx
jle 0x404676
push 4
push dword [esp + 0x150]
mov dword [esp + 0x148], edx
call fcn.00418526
mov edx, dword [esp + 0x148]
mov ebx, eax
push 4
push dword [esp + 0x158]
mov dword [0x446780], ebx
mov dword [esp + 0x150], edx
call fcn.00418526
mov edx, dword [esp + 0x150]
mov dword [esp + 0x158], eax
push 8
push dword [esp + 0x160]
mov dword [esp + 0x158], edx
mov dword [0x446790], eax
call fcn.00418526
mov edx, dword [esp + 0x158]
mov dword [esp + 0x15c], eax
push 4
push dword [esp + 0x168]
mov dword [esp + 0x160], edx
mov dword [0x44679c], eax
call fcn.00418526
mov edx, dword [esp + 0x160]
mov dword [esp + 0x158], eax
mov ecx, dword [esp + 0x16c]
shl ecx, 8
push ecx
push 1
mov dword [0x4467a0], eax
mov dword [esp + 0x168], edx
call fcn.00418526
mov edx, dword [esp + 0x168]
mov dword [esp + 0x5c], eax
push 4
push dword [esp + 0x178]
mov dword [esp + 0x170], edx
mov dword [0x4467a4], eax
call fcn.00418526
mov edx, dword [esp + 0x170]
mov dword [esp + 0x16c], eax
add esp, 0x30
mov dword [0x446798], eax
test ebx, ebx
je 0x404b7c
cmp dword [esp + 0x148], 0
je 0x404b7c
cmp dword [esp + 0x144], 0
je 0x404b7c
cmp dword [esp + 0x13c], 0
je 0x404b7c
cmp dword [esp + 0x34], 0
je 0x404b7c
cmp dword [esp + 0x14c], 0
jle 0x404a50
cmp dword [esp + 0x14c], 4
jl 0x404b6f
and eax, 0xf
mov dword [esp + 0x2c], eax
je 0x40492a
test byte [esp + 0x2c], 3
jne 0x404b6f
neg eax
add eax, 0x10
shr eax, 2
mov dword [esp + 0x2c], eax
lea ecx, [eax + 4]
cmp ecx, dword [esp + 0x14c]
jg 0x404b6f
mov eax, dword [esp + 0x14c]
mov ecx, eax
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x2c]
sub ecx, ebx
and ecx, 3
neg ecx
add ecx, eax
mov dword [esp + 0x28], ecx
test ebx, ebx
mov ebx, dword [esp + 0x30]
jbe 0x404993
mov dword [esp + 0x20], esi
xor eax, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x13c]
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x100
cmp eax, esi
jb 0x404979
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x2c]
shl ebx, 8
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x24], edi
movdqu xmm1, xmmword [0x431810]
mov edi, dword [esp + 0x13c]
lea eax, [ecx + ebx]
lea ecx, [ecx + ebx + 0x100]
mov ebx, dword [esp + 0x30]
movd xmm0, eax
lea eax, [ecx + 0x100]
movd xmm2, ecx
add ecx, 0x200
punpckldq xmm0, xmm2
movd xmm4, eax
movd xmm3, ecx
punpckldq xmm4, xmm3
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
punpcklqdq xmm0, xmm4
movdqu xmmword [edi + ecx*4], xmm0
add ecx, 4
paddd xmm0, xmm1
cmp ecx, eax
jb 0x4049f3
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov eax, ecx
shl eax, 8
add dword [esp + 0x34], eax
cmp ecx, dword [esp + 0x14c]
jae 0x404a50
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x13c]
mov edi, dword [esp + 0x14c]
mov dword [esi + ecx*4], eax
inc ecx
add eax, 0x100
cmp ecx, edi
jb 0x404a3b
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
test esi, esi
je 0x404b5d
test edx, edx
jle 0x404b12
xor eax, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x140], edx
mov dword [esp + 0x20], esi
mov esi, eax
mov edi, dword [esp + 0x138]
mov edx, dword [esp + 0x154]
mov ecx, dword [esp + 0x144]
movq xmm0, qword [edx + esi*8]
mov edx, dword [esp + 0x15c]
movq qword [ecx + esi*8], xmm0
mov ecx, dword [esp + 0x148]
mov edx, dword [edx + esi*4]
mov dword [ebx + esi*4], edx
mov edx, dword [esp + 0x158]
mov edx, dword [edx + esi*4]
mov dword [ecx + esi*4], edx
mov edx, dword [esp + 0x160]
mov edx, dword [edx + esi*4]
mov dword [edi + esi*4], edx
mov edx, dword [esp + 0x164]
mov edx, dword [edx + esi*4]
cmp byte [edx], 0
je 0x404afc
mov edx, dword [esp + 0x13c]
mov ecx, dword [esp + 0x164]
mov edx, dword [edx + esi*4]
mov ecx, dword [ecx + esi*4]
test cl, 3
je 0x404af7
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x404afc
inc edx
test cl, 3
jne 0x404ae8
call fcn.004096b0
inc esi
cmp esi, dword [esp + 0x140]
jl 0x404a7a
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
push dword [esp + 0x15c]
call fcn.0041850b
push dword [esp + 0x15c]
call fcn.0041850b
push dword [esp + 0x15c]
call fcn.0041850b
push dword [esp + 0x16c]
call fcn.0041850b
push dword [esp + 0x160]
call fcn.0041850b
push dword [esp + 0x178]
call fcn.0041850b
add esp, 0x18
mov edx, dword [esp + 0x14c]
mov dword [0x446788], edx
jmp 0x404676
mov dword [esp + 0x28], 0
jmp 0x404a0b
push 2
call fcn.00416e97
mov ebx, eax
add esp, 4
mov esi, dword [str.MSG:_Cant_create_allocation_tables_with__d_entries_n]
mov eax, dword [esp + 0x14c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], eax
call fcn.004021f0
lea edx, [esp + 0x30]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
mov ebx, dword [0x447e24]
test ebx, ebx
je 0x40441e
mov esi, dword [str.MSG:_Cant_create_allocation_tables_with__d_entries_n]
mov eax, dword [esp + 0x14c]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], eax
call fcn.004021f0
lea edx, [esp + 0x24]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
jmp 0x40441e