Function at 0x4618c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x18c
mov dword [esp + 0x38], eax
mov eax, dword [eax]
lea edi, [esp + 0x108]
mov dword [esp + 0x58], edx
mov ebx, dword [esp + 0x1a0]
mov edx, eax
mov dword [esp + 0x30], ecx
mov ecx, 0x1e
mov ebp, dword [esp + 0x1a8]
mov dword [esp + 0x28], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, esi
mov esi, dword [esi + 0x10]
mov dword [esp + 0x14c], edx
mov dword [esp + 0x48], esi
test esi, esi
je 0x461936
movzx edx, byte [edi + 0x1c]
test dl, 8
je 0x461d90
cmp ebx, dword [esp + 0x1a4]
je 0x461d90
and edx, 1
cmove eax, esi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x6c], 0
mov eax, dword [eax + 0x18]
cmp eax, dword [esp + 0x1ac]
jae 0x461969
mov edi, dword [esp + 0x1ac]
lea edx, [edi - 1]
mov edi, edx
sub edi, eax
sub eax, edx
add dword [esp + 0x1ac], eax
mov dword [esp + 0x6c], edi
mov esi, dword [esp + 0x38]
mov eax, dword [esi + 8]
test eax, eax
je 0x462430
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0x24]
test eax, eax
je 0x462430
mov edx, dword [edi + 0x28]
test edx, edx
je 0x462430
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x462430
mov edi, dword [edi + 0x30]
test edi, edi
je 0x462430
mov edi, dword [eax + 8]
test edi, edi
jne 0x4619f0
mov eax, dword [edx + 8]
test eax, eax
jne 0x4619f0
mov eax, dword [ecx + 8]
test eax, eax
je 0x4619c3
cmp byte [esi + 0x1c], 0
js 0x4619f0
test ebx, ebx
je 0x4619de
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x44], 1
test eax, eax
jne 0x461d66
mov dword [esp + 0x1a4], 0
xor ebx, ebx
lea esi, [esi]
nop
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x24], 1
test eax, eax
je 0x461d75
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x78], ecx
mov esi, dword [eax + 8]
mov edi, dword [eax + 0x5c]
lea eax, [edx + 1]
mov dword [esp + 0x138], ecx
mov dword [esp + 0x128], edx
add esi, 1
mov dword [esp + 0x124], edx
cmp esi, edi
mov dword [esp + 0x148], edi
cmovl esi, edi
cmp esi, eax
cmovg esi, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x18]
and eax, 0x400000
setne byte [esp + 0x140]
or ecx, eax
mov eax, dword [esp + 0x28]
setne byte [esp + 0x143]
movzx eax, byte [eax + 0x58]
mov dword [esp + 0x1c], ecx
mov edx, eax
shr dl, 2
and edx, 1
mov byte [esp + 0x141], dl
mov edx, eax
shr dl, 3
and edx, 1
mov byte [esp + 0x142], dl
mov edx, dword [esp + 0x30]
mov dword [esp + 0x130], edx
mov dword [esp + 0x12c], edx
test ecx, ecx
jne 0x462531
shr al, 4
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x11c], esi
and eax, 1
mov byte [esp + 0x146], al
mov eax, dword [esp + 0x58]
lea edx, [ecx + 0x60]
mov dword [esp + 0x13c], edx
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x30]
cmp edi, 1
jle 0x461af5
xor eax, eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x130], ebp
movzx eax, byte [eax + 0x1c]
mov dword [esp + 0x12c], ebp
mov byte [esp + 0x18], al
shr al, 7
mov byte [esp + 0x145], al
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x4c]
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0x154], 0xffffffff
lea ebp, [edx + edx]
mov dword [esp + 0x150], eax
test ebp, ebp
jle 0x461ba1
cmp ebp, 0xccccccc
jg 0x462961
shl edx, 3
lea eax, [edx + ebp]
mov dword [esp + 0x18], edx
shl eax, 2
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edx, dword [esp + 0x18]
mov dword [esp + 0x16c], eax
mov dword [esp], edx
mov dword [esp + 0x20], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x17c], eax
test eax, eax
je 0x462961
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x462961
cmp dword [esp + 0x1ac], 1
mov dword [esp + 0x168], ebp
mov dword [esp + 0x170], 1
mov dword [esp + 0x178], ebp
jbe 0x4628f8
cmp esi, 0x3ffffffe
ja 0x462961
lea eax, [esi*4 + 4]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x15c], eax
test eax, eax
je 0x462961
mov eax, dword [esp + 0x1b4]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x64], 8
and eax, 1
cmp eax, 1
sbb eax, eax
and eax, 2
add eax, 4
mov dword [esp + 0x134], eax
xor eax, eax
cmp ebx, dword [esp + 0x1a4]
setle al
lea eax, [eax + eax - 1]
mov dword [esp + 0x68], eax
mov eax, ebx
cmovg eax, dword [esp + 0x1a4]
mov dword [esp + 0x60], eax
mov eax, ebx
cmovl eax, dword [esp + 0x1a4]
mov dword [esp + 0x4c], eax
test ebp, ebp
je 0x461c8e
mov edx, 4
cmp edi, 1
je 0x461c6d
mov edi, dword [esp + 0x1c]
xor edx, edx
test edi, edi
sete dl
shl edx, 2
xor eax, eax
mov esi, dword [esp + 0x78]
cmp ebx, dword [esp + 0x1a4]
setle al
xor ecx, ecx
add eax, eax
test esi, esi
setne cl
or eax, ecx
or eax, edx
mov dword [esp + 0x64], eax
xor eax, eax
lea edx, [esp + 0xa0]
cmp ebx, dword [esp + 0x1a4]
cmovle eax, edx
test eax, eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x64]
setne byte [esp + 0x9e]
cmp eax, 7
je 0x46222f
cmp eax, 8
je 0x461dae
cmp eax, 6
jne 0x462275
cmp dword [esp + 0x4c], ebx
jle 0x461da4
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x58]
lea esi, [esi]
movzx eax, byte [ecx + ebx]
cmp byte [edx + eax], 0
jne 0x461d9d
add ebx, 1
mov dword [esp + 0xa0], ebx
cmp ebx, esi
jne 0x461ce8
mov ebx, dword [esp + 0x4c]
xor eax, eax
cmp dword [esp + 0x30], ebx
jle 0x461d18
mov eax, dword [esp + 0x58]
movzx eax, byte [eax + ebx]
mov edi, dword [esp + 0x78]
test edi, edi
je 0x461d24
movzx eax, byte [edi + eax]
mov edi, dword [esp + 0x48]
cmp byte [edi + eax], 0
jne 0x461dae
mov dword [esp + 0x44], 1
mov ebp, dword [esp + 0x15c]
mov dword [esp], ebp
call fcn.00499b28
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x4c]
test eax, eax
jne 0x46290b
cmp byte [esp + 0x143], 0
jne 0x462943
mov eax, dword [esp + 0x44]
add esp, 0x18c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x4c]
test eax, eax
setne al
movzx eax, al
mov dword [esp + 0x24], eax
jmp 0x461a07
mov dword [esp + 0x48], 0
jmp 0x461936
mov ebx, dword [esp + 0xa0]
cmp dword [esp + 0x4c], ebx
je 0x461d08
mov ecx, dword [esp + 0x1b4]
mov edx, ebx
lea eax, [esp + 0x108]
call fcn.0045deb0
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4627e7
movzx eax, byte [esp + 0x24]
mov ebx, dword [esp + 0x14c]
mov dword [esp + 0x170], 0
mov dword [esp + 0x164], 0
mov edi, dword [esp + 0x120]
mov dword [esp + 0x160], 0
and eax, 1
mov byte [esp + 0x9d], al
mov eax, dword [ebx + 0x24]
mov dword [esp + 0xa4], 0
cmp byte [eax + 0x34], 0
mov dword [esp + 0x1c], eax
jns 0x461e68
mov ecx, dword [esp + 0x150]
lea edx, [edi - 1]
lea eax, [esp + 0x108]
call fcn.0045c610
test al, 1
jne 0x4627c0
test eax, eax
je 0x461e68
mov edx, eax
and edx, 6
cmp edx, 6
je 0x462e9e
test al, 2
jne 0x462e49
test al, 4
jne 0x462eaa
lea esi, [esi]
mov eax, dword [esp + 0x15c]
test eax, eax
je 0x461e85
mov esi, dword [esp + 0x1c]
mov dword [eax + edi*4], esi
mov eax, dword [ebx + 0x4c]
test eax, eax
jne 0x462e55
movzx eax, byte [esp + 0x9e]
mov byte [esp + 0x20], al
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 0x34]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x40], 0xffffffff
test al, 0x10
jne 0x462e20
mov eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x120]
cmp ebp, dword [esp + 0x130]
mov dword [esp + 0x3c], eax
jl 0x461f32
jmp 0x462015
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x120]
cmp ebx, eax
sete al
and byte [esp + 0x20], al
movzx eax, byte [ebx + 0x34]
cmovne edi, esi
mov esi, ebp
test al, 0x10
je 0x461f1d
test al, al
js 0x462360
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x462027
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], 0
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x130], ebp
jle 0x462015
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x11c]
lea esi, [ebp + 1]
cmp esi, eax
jge 0x462380
mov eax, dword [esp + 0x114]
cmp esi, eax
jge 0x462418
lea eax, [ebp + 1]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x10c]
movzx ebx, byte [eax + ebp]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x4623c0
movzx edx, bl
mov eax, dword [eax + edx*4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x15c]
test eax, eax
je 0x461fa7
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x108]
lea eax, [esp + 0xa4]
call fcn.00461620
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x461ed0
mov eax, dword [esp + 0xa4]
mov ebp, dword [esp + 0x15c]
test eax, eax
jne 0x4624bd
test ebp, ebp
je 0x462015
movzx eax, byte [esp + 0x9d]
xor eax, 1
test byte [esp + 0x2c], al
jne 0x462015
mov ecx, dword [esp + 0x160]
mov eax, dword [esp + 0x120]
xor edx, edx
jmp 0x462001
mov ebx, dword [ebp + eax*4]
mov edx, 1
test ebx, ebx
jne 0x462318
mov ebx, eax
add eax, 1
cmp ecx, eax
jge 0x461ff0
test dl, dl
je 0x462015
mov dword [esp + 0x120], ebx
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x462023
mov eax, dword [esp + 0x3c]
add dword [eax], edi
mov esi, dword [esp + 0x40]
cmp esi, 0xffffffff
je 0x4621ec
cmp esi, 0xfffffffe
je 0x4624b6
mov eax, dword [esp + 0x38]
mov dword [esp + 0x154], esi
movzx eax, byte [eax + 0x1c]
test al, 0x10
jne 0x462460
cmp dword [esp + 0x1ac], 1
jbe 0x462579
mov ebp, dword [esp + 0x15c]
mov ecx, esi
lea eax, [esp + 0x108]
mov edx, dword [ebp + esi*4]
call fcn.0045e740
mov dword [esp + 0x18], eax
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x28]
test byte [eax + 0x58], 1
jne 0x4620a6
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x46289f
mov eax, dword [esp + 0x158]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14c]
mov dword [esp + 0x1c], eax
cmp esi, 0x3ffffffe
ja 0x4624bd
lea edi, [esi + 1]
lea ebx, [edi*4]
mov dword [esp], ebx
call sub.msvcrt.dll_malloc
mov ebp, eax
test eax, eax
je 0x4624b6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x4627f3
mov dword [esp], ebx
call sub.msvcrt.dll_malloc
mov ebx, eax
test eax, eax
je 0x463151
lea ecx, [esp + 0xe8]
mov dword [esp + 0x2c], ecx
lea eax, [edi*4]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], ebx
call sub.msvcrt.dll_memset
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xe8], ebp
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], eax
lea eax, [esp + 0x108]
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
call fcn.0045ff50
mov edx, dword [esp + 0x100]
mov dword [esp + 0x20], eax
mov dword [esp], edx
call fcn.00499b28
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4621cb
mov eax, dword [ebp]
test eax, eax
jne 0x463075
mov eax, dword [ebx]
test eax, eax
jne 0x463075
sub esi, 1
jb 0x4621c6
mov eax, dword [esp + 0x15c]
lea esi, [esi]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x4621c1
test byte [edx + 0x34], 0x10
jne 0x462970
sub esi, 1
jae 0x4621b0
mov eax, 1
mov dword [esp], ebp
mov dword [esp + 0x18], eax
call fcn.00499b28
mov dword [esp], ebx
call fcn.00499b28
mov eax, dword [esp + 0x18]
cmp eax, 1
jne 0x463cc4
lea eax, [esp + 0x108]
call fcn.0045ce40
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x68]
add ebx, dword [esp + 0xa0]
mov dword [esp + 0xa0], ebx
cmp ebx, eax
jl 0x461d32
mov eax, dword [esp + 0x4c]
cmp ebx, eax
jg 0x461d32
mov eax, dword [esp + 0x64]
cmp eax, 7
jne 0x461cbc
cmp dword [esp + 0x4c], ebx
jle 0x461da4
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x58]
lea esi, [esi]
movzx eax, byte [esi + ebx]
movzx eax, byte [ecx + eax]
cmp byte [edx + eax], 0
jne 0x461d9d
add ebx, 1
mov dword [esp + 0xa0], ebx
cmp ebx, edi
jne 0x462250
jmp 0x461d04
cmp eax, 3
jg 0x4624d0
mov edx, ebx
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x60]
mov ebx, dword [esp + 0x4c]
jmp 0x4622cf
mov eax, esi
cmp dword [esp + 0x30], edx
jle 0x4622ad
mov eax, dword [esp + 0x10c]
movzx eax, byte [eax + ecx]
add eax, esi
cmp byte [eax], 0
jne 0x462525
add edx, edi
mov dword [esp + 0xa0], edx
cmp edx, ebp
jl 0x461d32
cmp edx, ebx
jg 0x461d32
mov ecx, edx
sub ecx, dword [esp + 0x110]
cmp ecx, dword [esp + 0x118]
jb 0x462298
mov ecx, dword [esp + 0x1b4]
lea eax, [esp + 0x108]
mov dword [esp + 0x1a0], edx
call fcn.0045deb0
mov edx, dword [esp + 0x1a0]
test eax, eax
jne 0x463065
mov ecx, edx
sub ecx, dword [esp + 0x110]
jmp 0x462298
xor ecx, ecx
mov dword [esp + 0x120], eax
lea edx, [esp + 0x108]
lea eax, [esp + 0xa4]
call fcn.00461620
mov ecx, eax
or ecx, dword [esp + 0xa4]
jne 0x46234b
mov ebp, dword [esp + 0x15c]
jmp 0x461fde
mov dword [esp + 0x18], eax
test eax, eax
jne 0x461ed0
jmp 0x462015
mov ecx, ebp
mov edx, ebx
lea eax, [esp + 0x108]
call fcn.0045e740
test eax, eax
je 0x461f1d
jmp 0x461efd
cmp eax, dword [esp + 0x128]
jge 0x461f44
lea edx, [ebp + 2]
lea eax, [esp + 0x108]
call fcn.0045f340
mov dword [esp + 0xa4], eax
test eax, eax
jne 0x462494
mov ebp, dword [esp + 0x120]
jmp 0x461f53
mov ecx, esi
mov esi, edi
mov eax, dword [esp + 0x1c]
mov ebp, dword [eax + 0x30]
mov dword [esp + 0x18], ebp
test ebp, ebp
je 0x46298a
mov eax, dword [esp + 0x120]
mov edi, esi
mov esi, ecx
mov ecx, dword [esp + 0x150]
lea edx, [eax - 1]
lea eax, [esp + 0x108]
call fcn.0045c610
mov edx, eax
movzx eax, bl
and edx, 1
je 0x462450
mov eax, dword [ebp + eax*4 + 0x400]
mov dword [esp + 0x18], eax
jmp 0x461f81
cmp eax, dword [esp + 0x128]
jge 0x461f53
jmp 0x46238d
mov dword [esp + 0x44], 1
mov eax, dword [esp + 0x44]
add esp, 0x18c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x18], eax
jmp 0x461f81
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x46289f
mov ebp, dword [esp + 0x15c]
mov ecx, esi
lea eax, [esp + 0x108]
mov edx, dword [ebp + esi*4]
call fcn.0045e740
mov dword [esp + 0x158], eax
jmp 0x46209b
cmp eax, 0xc
je 0x4624b6
mov dword [esp + 8], 0x468
mov dword [esp + 4], str..._regex_regexec.c
mov dword [esp], str.err__REG_ESPACE
call dword [sym.imp.msvcrt.dll__assert]
mov ebp, dword [esp + 0x15c]
mov dword [esp + 0x44], 0xc
jmp 0x461d41
cmp dword [esp + 0x60], ebx
jg 0x461d32
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x60]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x30]
jmp 0x462502
sub ebx, 1
mov dword [esp + 0xa0], ebx
cmp ebx, edi
jl 0x461d32
xor eax, eax
cmp esi, ebx
jle 0x46250d
movzx eax, byte [ebp + ebx]
test edx, edx
je 0x462515
movzx eax, byte [edx + eax]
cmp byte [ecx + eax], 0
je 0x4624f0
cmp dword [esp + 0x60], ebx
jg 0x461d32
mov ebx, dword [esp + 0xa0]
jmp 0x461dae
mov dword [esp], esi
call sub.msvcrt.dll_malloc
test eax, eax
je 0x462961
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x11c], esi
lea eax, [ecx + 0x60]
mov dword [esp + 0x13c], eax
movzx eax, byte [ecx + 0x58]
mov byte [esp + 0x18], al
shr al, 4
and eax, 1
mov byte [esp + 0x146], al
xor eax, eax
jmp 0x461af5
mov edi, dword [esp + 0x28]
mov edx, dword [edi + 0x4c]
test edx, edx
jne 0x46246f
mov edx, dword [esp + 0x1ac]
test edx, edx
je 0x4627e7
mov edi, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x154]
mov dword [edi], 0
mov dword [edi + 4], ebx
test al, 0x10
jne 0x463410
cmp dword [esp + 0x1ac], 1
je 0x463410
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
test byte [eax + 0x58], 1
je 0x463c52
mov eax, dword [eax + 0x4c]
test eax, eax
jle 0x463c52
mov dword [esp], 0x30
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 2
call sub.msvcrt.dll_malloc
mov dword [esp + 0xf0], eax
mov esi, eax
test eax, eax
je 0x4624b6
mov eax, dword [esp + 0x2c]
mov ebp, dword [eax + 0x48]
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
shl eax, 3
mov dword [esp], eax
mov dword [esp + 0x24], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x18], eax
test eax, eax
je 0x463d05
lea edi, [esp + 0xe8]
mov eax, dword [esp + 0x24]
xor esi, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov dword [esp + 0xa8], 0
jmp 0x462765
cmp edx, 9
je 0x4631eb
cmp esi, ebx
jne 0x4626ba
cmp ebp, dword [esp + 0x158]
je 0x463553
mov ebx, dword [esp + 0x14c]
mov edx, dword [esp + 0x1c]
add edx, dword [ebx]
movzx eax, byte [edx + 4]
test al, 8
jne 0x4630b2
cmp al, 4
je 0x46315e
mov esi, dword [esp + 0xa8]
mov ecx, esi
lea eax, [esp + 0x108]
call fcn.0045c680
test al, al
je 0x463ae3
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x20]
add esi, 1
mov ebp, dword [eax + ecx*4]
mov dword [esp + 0xa8], esi
test edi, edi
je 0x462741
cmp esi, dword [esp + 0x154]
jg 0x463511
mov eax, dword [esp + 0x15c]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x463511
add eax, 4
mov edx, ebp
call fcn.0045c270
test eax, eax
je 0x463511
mov dword [esp + 0xcc], 0
test ebp, ebp
js 0x463b17
mov eax, dword [esp + 0x1b0]
mov esi, dword [esp + 0xa8]
mov ebx, dword [eax + 4]
cmp esi, ebx
jg 0x463be3
mov ecx, dword [esp + 0x2c]
lea eax, [ebp*8]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], eax
add eax, dword [ecx]
movzx edx, byte [eax + 4]
cmp edx, 8
jne 0x4626a0
mov eax, dword [eax]
add eax, 1
cmp dword [esp + 0x1ac], eax
jle 0x4626a9
mov ecx, dword [esp + 0x1b0]
lea eax, [ecx + eax*8]
mov dword [eax + 4], 0xffffffff
mov ebx, dword [ecx + 4]
mov dword [eax], esi
jmp 0x4626a9
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x461e68
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x44], eax
cmp eax, 0xc
jne 0x462e91
mov ebp, dword [esp + 0x15c]
jmp 0x461d41
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0xe8]
mov dword [esp + 0xe8], ebp
mov edx, ecx
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], eax
lea eax, [esp + 0x108]
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
call fcn.0045ff50
mov edx, dword [esp + 0x100]
mov dword [esp + 0x1c], eax
mov dword [esp], edx
call fcn.00499b28
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x46309d
mov ecx, dword [ebp]
test ecx, ecx
je 0x463040
mov eax, dword [esp + 0x15c]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x18]
mov dword [esp + 0x15c], ebp
mov dword [esp + 0x154], esi
mov dword [esp + 0x158], eax
cmp dword [esp + 0x1ac], 0
je 0x4627e7
cmp dword [esp + 0x1ac], 1
je 0x4628e7
mov eax, dword [esp + 0x1b0]
mov edi, dword [esp + 0x1b0]
mov esi, dword [esp + 0x1ac]
add eax, 8
lea edx, [edi + esi*8]
mov dword [eax + 4], 0xffffffff
add eax, 8
mov dword [eax - 8], 0xffffffff
cmp edx, eax
jne 0x4628d2
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + 0x1c]
jmp 0x462597
mov eax, dword [esp + 0x28]
test byte [eax + 0x58], 2
jne 0x461bc8
jmp 0x461bf2
lea eax, [esp + 0x108]
call fcn.0045ce40
mov eax, dword [esp + 0x17c]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x16c]
mov dword [esp], eax
call fcn.00499b28
cmp byte [esp + 0x143], 0
je 0x461d66
mov eax, dword [esp + 0x10c]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x44]
add esp, 0x18c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x44], 0xc
xor ebp, ebp
jmp 0x461d41
mov ecx, esi
lea eax, [esp + 0x108]
lea edi, [esi + 1]
call fcn.0045e740
mov dword [esp + 0x18], eax
jmp 0x462105
mov dword [esp], 0x2c00
mov edi, dword [esp + 0x14c]
mov dword [esp + 0x34], ecx
call sub.msvcrt.dll_malloc
mov ecx, dword [esp + 0x34]
test eax, eax
mov dword [esp + 0x80], eax
je 0x4635d4
add eax, 0xc00
xor edx, edx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x2c], 0
mov dword [eax + 0x30], 0
xor eax, eax
mov dword [esp + eax + 0xa8], edx
add eax, 4
cmp eax, 0x20
jb 0x4629d3
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 8]
test eax, eax
jle 0x463b60
xor eax, eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x54], 0
mov esi, eax
mov dword [esp + 0x88], ecx
mov byte [esp + 0x98], bl
jmp 0x462a3a
cmp dword [esp + 0x50], 3
je 0x462fa8
cmp dword [esp + 0x50], 5
je 0x462eec
mov eax, dword [esp + 0x1c]
add esi, 1
cmp esi, dword [eax + 8]
jge 0x4635dd
lea eax, [esi*4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + esi*4]
mov eax, dword [edi]
lea eax, [eax + edx*8]
movzx ecx, byte [eax + 4]
mov dword [esp + 0x70], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x34], eax
shr eax, 8
mov ebx, eax
and bx, 0x3ff
cmp ecx, 1
jne 0x462a14
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x50]
movzx ecx, byte [eax]
mov eax, ecx
shl edx, cl
shr eax, 3
and eax, 0x1c
or dword [esp + eax + 0xa8], edx
test bx, bx
je 0x462b3e
test bl, 0x20
jne 0x462f6e
test bl, 0x80
jne 0x46304d
test bl, 4
je 0x462af4
xor eax, eax
xor ecx, ecx
cmp dword [esp + 0x50], 1
jne 0x462ad0
mov edx, dword [esp + 0x70]
test byte [edx + 6], 0x10
je 0x463258
nop
mov edx, dword [esp + eax*4 + 0xa8]
and edx, dword [edi + eax*4 + 0x60]
mov dword [esp + eax*4 + 0xa8], edx
add eax, 1
or ecx, edx
cmp eax, 8
jne 0x462ad0
test ecx, ecx
je 0x462a2a
and ebx, 8
je 0x462b3e
xor edx, edx
xor ecx, ecx
cmp dword [esp + 0x50], 1
jne 0x462b18
mov eax, dword [esp + 0x70]
test byte [eax + 6], 0x10
jne 0x4631d5
lea esi, [esi]
mov eax, dword [edi + edx*4 + 0x60]
not eax
and eax, dword [esp + edx*4 + 0xa8]
mov dword [esp + edx*4 + 0xa8], eax
add edx, 1
or ecx, eax
cmp edx, 8
jne 0x462b18
test ecx, ecx
je 0x462a2a
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x34], 0
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x462d42
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], edi
jmp 0x462bba
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x74]
movzx ecx, byte [eax]
shl edx, 5
mov eax, ecx
shr eax, 3
and eax, 0x1c
add eax, edx
mov eax, dword [edi + eax]
shr eax, cl
test al, 1
jne 0x462bc1
add dword [esp + 0x34], 1
mov edi, dword [esp + 0x54]
add ebx, 0x20
mov eax, dword [esp + 0x34]
add dword [esp + 0x5c], 0xc
cmp eax, edi
jge 0x462d34
cmp dword [esp + 0x50], 1
je 0x462b78
xor eax, eax
xor ecx, ecx
lea esi, [esp + 0xc8]
lea esi, [esi]
mov edx, dword [esp + eax*4 + 0xa8]
and edx, dword [ebx + eax*4]
mov dword [esi + eax*4], edx
add eax, 1
or ecx, edx
cmp eax, 8
jne 0x462bd0
test ecx, ecx
je 0x462b9d
xor eax, eax
xor esi, esi
lea ebp, [esp + 0xe8]
xor edi, edi
lea esi, [esi]
nop
mov ecx, dword [esp + eax*4 + 0xa8]
mov edx, ecx
not edx
and edx, dword [ebx + eax*4]
mov dword [ebp + eax*4], edx
or edi, edx
mov edx, dword [ebx + eax*4]
not edx
and edx, ecx
mov dword [esp + eax*4 + 0xa8], edx
add eax, 1
or esi, edx
cmp eax, 8
jne 0x462c00
test edi, edi
je 0x462d0a
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xe8]
mov eax, edi
lea ebp, [edi + edi]
shl eax, 5
add eax, ecx
mov dword [eax], edx
mov edx, dword [esp + 0xec]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xf0]
mov dword [eax + 8], edx
mov edx, dword [esp + 0xf4]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xf8]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0xfc]
mov dword [eax + 0x14], edx
mov edx, dword [esp + 0x100]
mov dword [eax + 0x18], edx
mov edx, dword [esp + 0x104]
mov dword [eax + 0x1c], edx
mov eax, dword [esp + 0xc8]
mov dword [ebx], eax
mov eax, dword [esp + 0xcc]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0xd0]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0xd4]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0xd8]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0xdc]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0xe0]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x5c]
mov dword [ebx + 0x1c], eax
lea eax, [ebp + edi]
lea eax, [ecx + eax*4]
call fcn.0045da50
test eax, eax
jne 0x46313c
add edi, 1
mov dword [esp + 0x54], edi
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x84]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + edi]
mov eax, dword [esp + 0x5c]
call fcn.0045f4e0
test al, al
je 0x462fce
test esi, esi
jne 0x462b9d
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x54], ecx
jne 0x462a2a
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0xa8]
mov eax, ecx
lea ebp, [ecx + ecx]
shl eax, 5
add eax, ebx
mov ebx, dword [esp + 0x84]
mov dword [eax], edx
mov edx, dword [esp + 0xac]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xb0]
mov dword [eax + 8], edx
mov edx, dword [esp + 0xb4]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xb8]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0xbc]
mov dword [eax + 0x14], edx
mov edx, dword [esp + 0xc0]
mov dword [eax + 0x18], edx
mov edx, dword [esp + 0xc4]
mov dword [eax + 0x1c], edx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + ebx]
lea eax, [ebp + ecx]
mov ecx, dword [esp + 0x80]
lea ebx, [ecx + eax*4]
mov dword [esp + 0x34], edx
mov dword [ebx], 1
mov dword [ebx + 4], 1
mov dword [esp], 4
call sub.msvcrt.dll_malloc
mov edx, dword [esp + 0x34]
test eax, eax
mov dword [ebx + 8], eax
je 0x4632ed
add dword [esp + 0x54], 1
mov dword [eax], edx
xor edx, edx
xor eax, eax
mov dword [esp + eax + 0xa8], edx
add eax, 4
cmp eax, 0x20
jb 0x462e07
jmp 0x462a2a
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x34], 0
js 0x462ecb
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], edi
mov esi, edi
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x461eb1
jmp 0x462027
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x1c], eax
jmp 0x4627c7
lea ebx, [esi + 4]
xor ecx, ecx
lea eax, [esp + 0x108]
mov ebp, esi
mov edx, ebx
call fcn.0045ca20
mov dword [esp + 0xa4], eax
mov esi, eax
test eax, eax
jne 0x462027
movzx eax, byte [ebp + 0x34]
test al, 0x40
jne 0x46326e
mov byte [esp + 0x20], 0
jmp 0x461e99
mov dword [esp + 8], 0x431
jmp 0x4624a1
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x1c], eax
jmp 0x4627c7
mov esi, dword [esp + 0x1c]
mov edx, ebx
mov ecx, dword [esi + 0x28]
mov dword [esp], eax
lea eax, [esp + 0xa4]
call fcn.0045ee50
mov dword [esp + 0x1c], eax
jmp 0x4627c7
mov edx, eax
mov ecx, edi
lea eax, [esp + 0x108]
call fcn.0045e740
mov dword [esp + 0x2c], eax
test eax, eax
je 0x461eb1
jmp 0x462e2e
mov dword [esp + 0xa8], 0xffffffff
mov dword [esp + 0xac], 0xffffffff
mov dword [esp + 0xb0], 0xffffffff
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0xb8], 0xffffffff
mov dword [esp + 0xbc], 0xffffffff
mov dword [esp + 0xc0], 0xffffffff
mov dword [esp + 0xc4], 0xffffffff
mov eax, dword [edi + 0x80]
test al, 0x40
jne 0x462f59
mov dword [esp + 0xa8], 0xfffffbff
test al, 0x80
je 0x462a95
and dword [esp + 0xa8], 0xfffffffe
jmp 0x462a95
mov eax, dword [esp + 0xa8]
xor edx, edx
shr eax, 0xa
mov ecx, eax
xor eax, eax
and ecx, 1
mov dword [esp + eax + 0xa8], edx
add eax, 4
cmp eax, 0x20
jb 0x462f81
test cl, cl
je 0x462a2a
mov dword [esp + 0xa8], 0x400
jmp 0x462aa7
mov eax, dword [esp + 0x70]
mov ecx, dword [eax]
xor eax, eax
mov edx, dword [esp + eax*4 + 0xa8]
or edx, dword [ecx + eax*4]
mov dword [esp + eax*4 + 0xa8], edx
add eax, 1
cmp eax, 8
jne 0x462fb0
jmp 0x462a95
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x8c]
lea ecx, [eax + eax]
mov eax, dword [esp + 0x80]
lea ebp, [eax + 8]
mov eax, dword [esp + 0x54]
add ecx, eax
lea ebx, [ebp + ecx*4]
lea esi, [esi]
nop
mov eax, dword [ebp]
add ebp, 0xc
mov dword [esp], eax
call fcn.00499b28
cmp ebx, ebp
jne 0x463000
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00499b28
mov ebp, dword [esp + 0x15c]
mov dword [esp + 0xa4], 0xc
test ebp, ebp
jne 0x461f8c
jmp 0x4624bd
mov dword [esp], ebp
call fcn.00499b28
jmp 0x4621ec
xor edx, edx
xor eax, eax
mov dword [esp + eax + 0xa8], edx
add eax, 4
cmp eax, 0x20
jb 0x463051
jmp 0x462a2a
mov dword [esp + 0x44], eax
mov ebp, dword [esp + 0x15c]
jmp 0x461d41
mov dword [esp], edi
mov eax, dword [esp + 0x1c]
mov ecx, ebx
mov edx, ebp
call fcn.0045f2b0
mov dword [esp], ebx
mov dword [esp + 0x1c], eax
call fcn.00499b28
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x462877
mov dword [esp], ebp
mov dword [esp + 0x18], eax
call fcn.00499b28
mov eax, dword [esp + 0x18]
jmp 0x4621e3
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x15c]
mov eax, dword [eax + edx*4]
lea edx, [ebp + ebp*2]
add eax, 4
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x14]
lea ebx, [eax + edx*4]
mov edx, ebp
lea eax, [esp + 0xc8]
call fcn.0045f4e0
test al, al
je 0x463b1c
mov edx, dword [ebx + 4]
test edx, edx
jle 0x463ae3
mov eax, dword [ebx + 8]
xor esi, esi
mov dword [esp + 0x30], edi
mov ebp, 0xffffffff
mov ebx, edx
mov edi, esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov esi, dword [eax + edi*4]
mov eax, dword [esp + 0x1c]
mov edx, esi
call fcn.0045c270
test eax, eax
je 0x46312c
cmp ebp, 0xffffffff
jne 0x463320
mov ebp, esi
add edi, 1
cmp ebx, edi
jne 0x46310b
mov edi, dword [esp + 0x30]
jmp 0x46274c
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x8c]
mov ecx, ebp
jmp 0x462fe3
mov dword [esp], ebp
call fcn.00499b28
jmp 0x4624b6
mov eax, dword [edx]
mov esi, dword [esp + 0x1b0]
lea edx, [esi + eax*8 + 8]
mov eax, dword [edx + 4]
mov ecx, dword [edx]
mov esi, eax
sub esi, ecx
test edi, edi
je 0x463b48
cmp eax, 0xffffffff
je 0x463511
cmp ecx, 0xffffffff
je 0x463511
test esi, esi
je 0x46329a
mov eax, dword [esp + 0x10c]
mov edx, dword [esp + 0xa8]
mov dword [esp + 8], esi
mov dword [esp + 0x1c], edx
add edx, eax
add eax, ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x463511
mov eax, dword [ebx + 0xc]
mov ebp, dword [eax + ebp*4]
mov eax, dword [esp + 0x1c]
add esi, eax
jmp 0x462705
xor eax, eax
mov dword [esp + eax + 0xa8], edx
add eax, 4
cmp eax, 0x20
jb 0x4631d7
jmp 0x462a2a
mov ecx, dword [eax]
lea edx, [ecx + 1]
cmp dword [esp + 0x1ac], edx
jle 0x4626a9
mov ecx, dword [esp + 0x1b0]
lea ecx, [ecx + edx*8]
cmp dword [ecx], esi
jl 0x463bb2
test byte [eax + 6], 8
je 0x463ba0
mov eax, dword [esp + 0x18]
cmp dword [eax + edx*8], 0xffffffff
je 0x463ba0
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1b0]
mov dword [esp + 8], ecx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x1b0]
mov ebx, dword [eax + 4]
jmp 0x4626a9
xor edx, edx
mov dword [esp + eax + 0xa8], edx
add eax, 4
cmp eax, 0x20
jb 0x46325a
jmp 0x462a2a
mov edx, ebx
lea eax, [esp + 0x108]
call fcn.00460ed0
mov dword [esp + 0xa4], eax
mov esi, eax
test eax, eax
jne 0x462027
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 0x34]
jmp 0x462e87
mov edx, ebp
lea eax, [esp + 0xc8]
call fcn.0045f4e0
test al, al
je 0x463b1c
mov esi, dword [ebx + 0x14]
lea eax, [ebp + ebp*2]
lea eax, [esi + eax*4]
mov esi, dword [esp + 0xa8]
mov eax, dword [eax + 8]
mov ebp, dword [eax]
mov eax, dword [esp + 0x15c]
mov eax, dword [eax + esi*4]
mov edx, ebp
add eax, 4
call fcn.0045c270
test eax, eax
jne 0x46274c
mov edx, dword [esp + 0x1c]
add edx, dword [ebx]
jmp 0x4626e2
mov eax, dword [esp + 0x54]
mov dword [ebx + 4], 0
mov ecx, ebp
mov dword [ebx], 0
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x8c]
test eax, eax
je 0x463012
jmp 0x462fe3
mov edx, ebp
lea eax, [esp + 0xc8]
mov edi, dword [esp + 0x30]
mov ebx, esi
call fcn.0045c270
test eax, eax
jne 0x463b10
test edi, edi
je 0x46274c
mov esi, dword [edi]
mov ecx, dword [esp + 0xa8]
mov eax, dword [edi + 8]
lea edx, [esi + 1]
mov dword [edi], edx
cmp edx, dword [edi + 4]
je 0x463cd8
lea edx, [esi + esi*2]
lea esi, [eax + edx*8]
mov dword [esi + 4], ebx
mov ebx, dword [esp + 0x24]
mov dword [esi], ecx
mov dword [esp], ebx
call sub.msvcrt.dll_malloc
mov dword [esi + 8], eax
test eax, eax
je 0x4633aa
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
lea eax, [esi + 0xc]
lea edx, [esp + 0xc8]
call fcn.0045da50
test eax, eax
je 0x46274c
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00499b28
cmp dword [edi], 0
mov ebx, dword [esp + 0x44]
jle 0x4633f9
mov eax, dword [edi + 8]
lea esi, [ebx + ebx*2]
add ebx, 1
shl esi, 3
mov eax, dword [eax + esi + 0x14]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [edi + 8]
mov eax, dword [eax + esi + 8]
mov dword [esp], eax
call fcn.00499b28
cmp ebx, dword [edi]
jl 0x4633ce
mov eax, dword [edi + 8]
mov dword [esp], eax
call fcn.00499b28
jmp 0x4624b6
xor eax, eax
mov esi, dword [sym.imp.msvcrt.dll__assert]
mov edi, dword [esp + 0x1ac]
xor ebx, ebx
mov ebp, dword [esp + 0x1b0]
jmp 0x463446
mov edx, dword [esp + 0xa0]
add dword [ebp + ebx*8 + 4], edx
add eax, edx
mov dword [ebp + ebx*8], eax
add ebx, 1
cmp ebx, edi
je 0x463474
mov eax, dword [ebp + ebx*8]
cmp eax, 0xffffffff
je 0x46343b
cmp byte [esp + 0x144], 0
je 0x46342a
mov dword [esp + 8], 0x376
mov dword [esp + 4], str..._regex_regexec.c
mov dword [esp], str.mctx.input.offsets_needed__0
call esi
mov eax, dword [ebp + ebx*8]
jmp 0x46342a
mov edx, dword [esp + 0x6c]
test edx, edx
jle 0x4634b1
mov edi, dword [esp + 0x1ac]
mov eax, dword [esp + 0x1b0]
mov edx, dword [esp + 0x6c]
lea eax, [eax + edi*8]
add edx, edi
mov edi, dword [esp + 0x1b0]
lea edx, [edi + edx*8]
mov dword [eax], 0xffffffff
add eax, 8
mov dword [eax - 4], 0xffffffff
cmp eax, edx
jne 0x46349d
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x15c]
mov edx, dword [eax + 0x84]
test edx, edx
je 0x461d41
cmp dword [esp + 0x1ac], 1
je 0x461d41
mov eax, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1b0]
lea ebx, [eax - 1]
xor eax, eax
mov esi, dword [edx + eax*4]
cmp esi, eax
je 0x463505
mov esi, dword [ecx + esi*8 + 8]
mov dword [ecx + eax*8 + 8], esi
mov esi, dword [edx + eax*4]
mov esi, dword [ecx + esi*8 + 0xc]
mov dword [ecx + eax*8 + 0xc], esi
add eax, 1
cmp eax, ebx
jne 0x4634eb
jmp 0x461d41
lea eax, [esp + 0xc8]
mov ecx, dword [esp + 0x1ac]
lea edx, [esp + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp], eax
mov eax, edi
call fcn.0045dc70
mov esi, dword [esp + 0xa8]
mov ebp, eax
mov eax, dword [esp + 0x1b0]
mov ebx, dword [eax + 4]
jmp 0x462765
test edi, edi
je 0x463e0c
mov ecx, dword [esp + 0x1b0]
xor eax, eax
mov ebp, dword [ecx + eax*8]
mov edx, eax
test ebp, ebp
js 0x463574
cmp dword [ecx + eax*8 + 4], 0xffffffff
je 0x463587
add eax, 1
cmp dword [esp + 0x1ac], eax
jne 0x463564
mov edx, dword [esp + 0x1ac]
cmp edx, dword [esp + 0x1ac]
je 0x463e35
lea eax, [esp + 0xc8]
mov ecx, dword [esp + 0x1ac]
lea edx, [esp + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp], eax
mov eax, edi
call fcn.0045dc70
mov dword [esp + 0x20], eax
mov ebp, eax
lea eax, [eax*8]
mov dword [esp + 0x1c], eax
jmp 0x4626ba
mov edi, esi
mov esi, ecx
jmp 0x463021
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
movzx ebx, byte [esp + 0x98]
test ebp, ebp
jle 0x463de9
mov eax, dword [esp + 0x54]
mov dword [esp + 0x50], ecx
mov dword [esp + 0xcc], 0
add eax, 1
lea ecx, [eax*4]
mov dword [esp + 0xc8], eax
mov dword [esp], ecx
mov dword [esp + 0x34], ecx
call sub.msvcrt.dll_malloc
mov ecx, dword [esp + 0x50]
test eax, eax
mov dword [esp + 0xd0], eax
mov ebp, eax
je 0x4639d7
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0x54]
cmp eax, 0x155551aa
jg 0x4639d7
lea eax, [eax + eax*2]
mov dword [esp + 0x5c], ecx
shl eax, 2
mov dword [esp], eax
mov dword [esp + 0x98], eax
call sub.msvcrt.dll_malloc
mov ecx, dword [esp + 0x5c]
test eax, eax
mov dword [esp + 0x50], eax
je 0x4639d7
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x50]
lea ebp, [esp + 0xe8]
mov dword [esp + 0x90], ebp
sub eax, 4
add edx, eax
add eax, edx
mov dword [esp + 0x88], edx
xor edx, edx
mov dword [esp + 0x8c], eax
xor eax, eax
mov dword [ebp + eax], edx
add eax, 4
cmp eax, 0x20
jb 0x4636b6
mov eax, dword [esp + 0x80]
mov dword [esp + 0x34], 0
mov byte [esp + 0x84], 0
mov dword [esp + 0x94], eax
lea ebp, [eax + 4]
lea eax, [esp + 0xc8]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], esi
mov byte [esp + 0x9f], bl
mov dword [esp + 0xcc], 0
mov ebx, dword [ebp]
xor esi, esi
test ebx, ebx
jle 0x463750
mov ebx, dword [esp + 0x5c]
lea esi, [esi]
mov eax, dword [ebp + 4]
mov edx, dword [eax + esi*4]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + edx*4]
cmp eax, 0xffffffff
je 0x463748
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x18]
lea edx, [eax + edx*4]
mov eax, ebx
call fcn.0045d6f0
mov dword [esp + 0xa8], eax
test eax, eax
jne 0x463975
add esi, 1
cmp esi, dword [ebp]
jl 0x463718
mov dword [esp], 0
mov ecx, dword [esp + 0x5c]
mov edx, edi
lea eax, [esp + 0xa8]
call fcn.0045ee50
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
mov dword [esi + ecx*4], eax
test eax, eax
je 0x463966
cmp byte [eax + 0x34], 0
js 0x4639df
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x34]
mov dword [ecx + esi*4], eax
mov ecx, dword [esp + 0x8c]
mov dword [ecx + esi*4], eax
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
xor eax, eax
nop
mov edx, dword [ebx + eax*4]
or edx, dword [ecx + eax*4 + 0xc00]
mov dword [ebx + eax*4], edx
add eax, 1
cmp eax, 8
jne 0x4637b0
add dword [esp + 0x34], 1
mov esi, dword [esp + 0x54]
add ebp, 0xc
mov eax, dword [esp + 0x34]
add dword [esp + 0x94], 0x20
cmp eax, esi
jne 0x4636fd
mov ecx, dword [esp + 0x70]
cmp byte [esp + 0x84], 0
mov esi, dword [esp + 0x74]
movzx ebx, byte [esp + 0x9f]
mov dword [esp + 0x34], ecx
jne 0x463d59
mov dword [esp + 4], 0x100
mov dword [esp], 4
call sub.msvcrt.dll_calloc
mov ecx, dword [esp + 0x34]
mov ebp, eax
mov eax, dword [esp + 0x1c]
test ebp, ebp
mov dword [eax + 0x2c], ebp
je 0x463d3c
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], 0
mov dword [esp + 0x70], ecx
add eax, 0xc20
mov dword [esp + 0x74], esi
mov dword [esp + 0x5c], eax
mov byte [esp + 0x94], bl
mov ebx, edi
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x90]
mov edx, 1
mov eax, dword [eax + edi*4]
shl edi, 7
mov ecx, edi
add ecx, ebp
test eax, eax
je 0x463888
test al, 1
jne 0x463a80
add edx, edx
add ecx, 4
shr eax, 1
jne 0x463877
add dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
add dword [esp + 0x5c], 4
cmp eax, 8
jne 0x463859
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
movzx ebx, byte [esp + 0x94]
test byte [esp + 0xe9], 4
je 0x4638f7
xor eax, eax
jmp 0x4638c4
mov edi, dword [esp + 0x54]
add eax, 1
cmp eax, edi
je 0x4638f7
mov edx, eax
mov edi, dword [esp + 0x80]
shl edx, 5
test byte [edi + edx + 0xc01], 4
je 0x4638b9
mov edi, dword [esp + 0x8c]
cmp byte [esp + 0x84], 0
mov eax, dword [edi + eax*4]
mov dword [ebp + 0x28], eax
je 0x4638f7
mov dword [ebp + 0x428], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x18], ecx
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x98]
lea ebp, [eax + 8]
add edi, ebp
mov eax, dword [ebp]
add ebp, 0xc
mov dword [esp], eax
call fcn.00499b28
cmp edi, ebp
jne 0x463929
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x4623c4
mov edi, esi
mov esi, ecx
jmp 0x461f77
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x46377c
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00499b28
mov edx, dword [esp + 0xd0]
mov dword [esp], edx
xor ebx, ebx
call fcn.00499b28
mov eax, dword [esp + 0x80]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x54]
lea ebp, [eax + 8]
mov eax, ebp
mov ebp, edi
mov edi, eax
lea esi, [esi]
mov edx, dword [edi]
add ebx, 1
add edi, 0xc
mov dword [esp], edx
call fcn.00499b28
cmp ebx, esi
jl 0x4639b8
mov esi, dword [esp + 0x34]
mov edi, ebp
jmp 0x463012
mov edi, esi
mov edx, ebp
mov esi, ecx
jmp 0x463990
mov dword [esp], 1
mov ecx, dword [esp + 0x5c]
mov edx, edi
lea eax, [esp + 0xa8]
call fcn.0045ee50
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x34]
mov dword [esi + ecx*4], eax
test eax, eax
je 0x463d45
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
cmp eax, dword [esi + ecx*4]
je 0x463a38
movzx esi, byte [esp + 0x84]
mov eax, 1
cmp dword [edi + 0x5c], 2
cmovge esi, eax
mov eax, esi
mov byte [esp + 0x84], al
mov dword [esp], 2
mov ecx, dword [esp + 0x5c]
mov edx, edi
lea eax, [esp + 0xa8]
call fcn.0045ee50
mov esi, dword [esp + 0x8c]
mov ecx, dword [esp + 0x34]
mov dword [esi + ecx*4], eax
test eax, eax
jne 0x46379e
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x46379e
jmp 0x463975
mov edi, dword [esp + 0x5c]
mov esi, edx
and esi, dword [edi - 0x20]
jne 0x463d2f
mov dword [esp + 0x34], ebx
mov ebx, dword [edi]
add esi, 1
add edi, 0x20
and ebx, edx
test ebx, ebx
je 0x463a93
lea edi, [esi*4]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x34], edi
mov esi, dword [esp + 0x18]
mov edi, edx
and edi, dword [ebx + esi*4 + 0x60]
je 0x463ad1
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x34]
mov esi, dword [edi + esi]
mov dword [ecx], esi
jmp 0x46387f
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x34]
mov esi, dword [edi + esi]
mov dword [ecx], esi
jmp 0x46387f
test edi, edi
jne 0x463511
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00499b28
jmp 0x461d32
mov ebp, esi
jmp 0x46274c
cmp ebp, 0xfffffffe
jne 0x463ae3
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00499b28
test edi, edi
jne 0x4633c5
jmp 0x4624b6
test esi, esi
je 0x46329a
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x1c], eax
jmp 0x4631c4
mov eax, dword [esp + 0x80]
mov edi, esi
mov esi, ecx
mov dword [esp], eax
call fcn.00499b28
mov dword [esp + 4], 0x100
mov dword [esp], 4
call sub.msvcrt.dll_calloc
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 0x2c], eax
test eax, eax
jne 0x461f77
jmp 0x463021
mov eax, dword [esp + 0x1b0]
mov dword [ecx + 4], esi
mov ebx, dword [eax + 4]
jmp 0x4626a9
mov eax, dword [esp + 0x24]
mov dword [ecx + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x1b0]
mov ebx, dword [eax + 4]
jmp 0x4626a9
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00499b28
test edi, edi
je 0x463d21
mov ecx, dword [edi]
xor ebx, ebx
test ecx, ecx
jle 0x463c39
mov eax, dword [edi + 8]
lea esi, [ebx + ebx*2]
add ebx, 1
shl esi, 3
mov eax, dword [eax + esi + 0x14]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [edi + 8]
mov eax, dword [eax + esi + 8]
mov dword [esp], eax
call fcn.00499b28
cmp ebx, dword [edi]
jl 0x463c0e
mov eax, dword [edi + 8]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x1b0]
mov eax, dword [eax]
jmp 0x463412
mov dword [esp + 0xe8], 0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xec], 2
mov dword [esp + 0xf0], 0
mov ebp, dword [eax + 0x48]
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
shl eax, 3
mov dword [esp], eax
mov dword [esp + 0x24], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x18], eax
test eax, eax
je 0x4624b6
xor edi, edi
jmp 0x46266b
mov dword [esp + 0x44], eax
mov ebp, dword [esp + 0x15c]
jmp 0x461d41
lea edx, [edx + edx*2]
mov dword [esp], eax
shl edx, 4
mov dword [esp + 0x1c], ecx
mov dword [esp + 4], edx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4633aa
mov dword [edi + 8], eax
mov ecx, dword [esp + 0x1c]
shl dword [edi + 4], 1
jmp 0x46335e
mov dword [esp], esi
call fcn.00499b28
mov dword [esp + 0x44], 0xc
mov ebp, dword [esp + 0x15c]
jmp 0x461d41
mov eax, dword [esp + 0x1b0]
mov eax, dword [eax]
jmp 0x463412
mov dword [esp + 0x34], 0
jmp 0x463ab0
mov edi, esi
mov esi, ecx
jmp 0x46397d
mov edx, dword [esp + 0xa8]
test edx, edx
je 0x463a0e
jmp 0x463975
mov dword [esp + 4], 0x200
mov dword [esp], 4
call sub.msvcrt.dll_calloc
mov ecx, dword [esp + 0x34]
mov ebp, eax
mov eax, dword [esp + 0x1c]
test ebp, ebp
mov dword [eax + 0x30], ebp
je 0x463d3c
mov eax, dword [esp + 0x80]
mov byte [esp + 0x5c], bl
xor edi, edi
mov ecx, esi
add eax, 0xc20
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x90]
mov edx, edi
shl edx, 7
mov ebx, dword [eax + edi*4]
lea esi, [ebp + edx]
mov edx, 1
test ebx, ebx
je 0x463dcc
mov dword [esp + 0x70], edi
test bl, 1
jne 0x463e8b
add edx, edx
add esi, 4
shr ebx, 1
jne 0x463db6
mov edi, dword [esp + 0x70]
add edi, 1
add dword [esp + 0x18], 4
cmp edi, 8
jne 0x463d96
mov esi, ecx
movzx ebx, byte [esp + 0x5c]
mov ecx, dword [esp + 0x34]
jmp 0x4638ab
mov eax, dword [esp + 0x80]
mov edi, esi
mov esi, ecx
mov dword [esp], eax
call fcn.00499b28
cmp dword [esp + 0x54], 0
je 0x463b73
jmp 0x463021
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x1b0]
mov eax, dword [eax]
jmp 0x463412
mov eax, dword [esp + 0xd0]
xor ebx, ebx
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00499b28
cmp dword [edi], 0
jle 0x463c39
mov eax, dword [edi + 8]
lea esi, [ebx + ebx*2]
add ebx, 1
shl esi, 3
mov eax, dword [eax + esi + 0x14]
mov dword [esp], eax
call fcn.00499b28
mov eax, dword [edi + 8]
mov eax, dword [eax + esi + 8]
mov dword [esp], eax
call fcn.00499b28
cmp ebx, dword [edi]
jl 0x463e5b
jmp 0x463c39
mov edi, dword [esp + 0x18]
mov eax, edx
and eax, dword [edi - 0x20]
jne 0x463eb4
mov dword [esp + 0x74], ecx
mov eax, edi
xor edi, edi
mov ecx, dword [eax]
add edi, 1
add eax, 0x20
and ecx, edx
test ecx, ecx
je 0x463e9e
mov ecx, dword [esp + 0x74]
mov eax, edi
jmp 0x463eb6
xor eax, eax
mov edi, dword [esp + 0x50]
mov edi, dword [edi + eax*4]
mov dword [esi], edi
mov edi, dword [esp + 0x88]
mov eax, dword [edi + eax*4]
mov dword [esi + 0x400], eax
jmp 0x463dbf