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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x610
movzx eax, byte [edx + 4]
mov edi, edx
mov ebx, ecx
test eax, eax
mov dword [esp + 0x20], eax
je 0x49842f
cmp eax, 1
jne 0x498446
mov dword [esp + 0x10], 0
mov dword [esp + 4], 0
mov eax, dword [0x5371d8]
test eax, eax
jne 0x498470
jmp 0x49845d
mov dword [esp + 4], 0x80000000
mov dword [esp + 0x10], eax
mov eax, dword [0x5371d8]
test eax, eax
jne 0x498470
jmp 0x49845d
mov al, 1
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0
mov eax, dword [0x5371d8]
test eax, eax
jne 0x498470
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
test eax, eax
je 0x499616
mov dword [0x5371d8], eax
push 0x100
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
test eax, eax
je 0x499616
movaps xmm0, xmmword [0x4de280]
movaps xmm1, xmmword [0x4de290]
movaps xmm2, xmmword [str._________._0123456789:_____ABCDEFGHIJKLMNOPQRSTUVWXYZ____abcdefghijklmnopqrstuvwxyz]
mov dword [esp + 0x4c], ebx
movzx ebx, byte [edi + 6]
mov esi, eax
lea eax, [esp + 0xf0]
lea ecx, [esp + 0x500]
movaps xmmword [esp + 0x500], xmm0
movaps xmmword [esp + 0x510], xmm1
movaps xmm1, xmmword [0x4de2b0]
movaps xmmword [esp + 0x520], xmm2
movaps xmm2, xmmword [0x4de2c0]
movaps xmmword [esp + 0x530], xmm1
movaps xmm1, xmmword [0x4de2d0]
movaps xmmword [esp + 0x540], xmm2
movaps xmm2, xmmword [0x4de2e0]
movaps xmmword [esp + 0x550], xmm1
movaps xmm1, xmmword [0x4de2f0]
movaps xmmword [esp + 0x560], xmm2
movaps xmm2, xmmword [0x4de300]
movaps xmmword [esp + 0x570], xmm1
movaps xmm1, xmmword [0x4de310]
movaps xmmword [esp + 0x580], xmm2
movaps xmm2, xmmword [0x4de320]
movaps xmmword [esp + 0x590], xmm1
movaps xmm1, xmmword [0x4de330]
movaps xmmword [esp + 0x5a0], xmm2
movaps xmm2, xmmword [0x4de340]
movaps xmmword [esp + 0x5b0], xmm1
movaps xmm1, xmmword [0x4de350]
movaps xmmword [esp + 0x5c0], xmm2
movaps xmm2, xmmword [0x4de360]
movaps xmmword [esp + 0x5d0], xmm1
movaps xmm1, xmmword [0x4de370]
movaps xmmword [esp + 0x5e0], xmm2
movaps xmmword [esp + 0x5f0], xmm1
push 0x100
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x500]
mov ecx, dword [esp + 0x504]
mov dword [esp + 0x214], eax
mov dword [esp + 0x218], ecx
lea eax, [esp + 0x220]
push 0x120
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
movzx eax, word [esp + 0x44]
movaps xmm0, xmmword [0x4de540]
movaps xmm2, xmmword [0x4de550]
movaps xmm1, xmmword [0x4de270]
lea ecx, [esp + 0xe8]
mov word [esp + 0x36d], ax
movzx eax, byte [esp + 0x46]
mov byte [esp + 0x36f], al
mov dword [esp + 0x398], 4
mov dword [esp + 0x39c], 0
movaps xmmword [esp + 0x3a0], xmm0
movaps xmmword [esp + 0x3b0], xmm2
movaps xmmword [esp + 0x3c0], xmm1
mov dword [esp + 0x3d0], 0
lea eax, [esp + 0x3d4]
push 0x108
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x20]
xorps xmm0, xmm0
mov dword [esp + 0x4dc], 0xffffffff
mov dword [esp + 0x4f0], 0
movaps xmmword [esp + 0x4e0], xmm0
mov byte [esp + 0x4f4], al
movzx eax, word [esp + 0x51]
mov word [esp + 0x4f5], ax
movzx eax, byte [esp + 0x53]
mov byte [esp + 0x4f7], al
mov eax, dword [esp + 4]
movaps xmmword [esp + 0x1f0], xmm0
movaps xmmword [esp + 0x200], xmm0
mov dword [esp + 0x210], 0x80000000
mov dword [esp + 0x21c], 0
mov dword [esp + 0x340], 0
mov word [esp + 0x344], 0
mov byte [esp + 0x346], bl
mov byte [esp + 0x347], 1
mov dword [esp + 0x348], 0
movdqa xmm0, xmmword [0x4de550]
mov dword [esp + 0x34c], eax
mov eax, dword [esp + 0x10]
movdqa xmmword [esp + 0x350], xmm0
mov dword [esp + 0x360], 0
mov dword [esp + 0x364], 0xffffffff
mov dword [esp + 0x368], 0
mov byte [esp + 0x36c], 0
mov byte [esp + 0x370], al
mov dword [esp + 0x371], 0x2020201
mov byte [esp + 0x375], 0
mov dword [esp + 0x378], 0x100
mov dword [esp + 0x37c], esi
mov dword [esp + 0x380], 0x100
mov dword [esp + 0x384], 0
mov word [esp + 0x388], 0
mov byte [esp + 0x38a], bl
mov byte [esp + 0x38c], bl
mov byte [esp + 0x38d], 1
mov dword [esp + 0x390], edi
mov dword [esp + 0x394], 0
mov edx, dword [esp + 0x3a8]
cmp edx, dword [esp + 0x3a0]
jne 0x4987ce
lea ecx, [esp + 0x3a0]
call fcn.00469680
mov edx, dword [esp + 0x3a8]
mov eax, dword [esp + 0x3a4]
lea ecx, [edx + edx*8]
inc edx
mov byte [eax + ecx], 0
mov dword [eax + ecx + 1], 0
mov dword [eax + ecx + 5], 0
mov dword [esp + 0x3a8], edx
mov edx, dword [esp + 0x3c0]
cmp edx, dword [esp + 0x3b8]
jne 0x498817
lea ecx, [esp + 0x3b8]
call fcn.0041b2f0
mov edx, dword [esp + 0x3c0]
mov eax, dword [esp + 0x3bc]
mov dword [eax + edx*8], 0
mov dword [eax + edx*8 + 4], 0
inc edx
mov dword [esp + 0x3c0], edx
mov edx, dword [esp + 0x3b4]
cmp edx, dword [esp + 0x3ac]
jne 0x498858
lea ecx, [esp + 0x3ac]
call fcn.00469720
mov edx, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
lea ecx, [esp + 0x394]
mov dword [eax + edx*4], 0
inc edx
mov dword [esp + 0x3b4], edx
mov edx, dword [esp + 0x39c]
cmp edx, 0x7ffffffe
ja 0x498941
mov esi, dword [esp + 0x4ec]
cmp edx, dword [esp + 0x394]
jne 0x4988a4
call fcn.0042d140
mov edx, dword [esp + 0x39c]
mov eax, dword [esp + 0x398]
lea ecx, [edx + edx*4]
inc edx
cmp edx, 0x7ffffffe
mov dword [eax + ecx*4], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esp + 0x39c], edx
ja 0x498941
mov esi, dword [esp + 0x4ec]
cmp edx, dword [esp + 0x394]
jne 0x498904
lea ecx, [esp + 0x394]
call fcn.0042d140
mov edx, dword [esp + 0x39c]
mov eax, dword [esp + 0x398]
lea ecx, [edx + edx*4]
inc edx
cmp edx, 0x7ffffffe
mov dword [eax + ecx*4], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esp + 0x39c], edx
jbe 0x4989a5
movdqa xmm0, xmmword [0x4de560]
mov ebx, edx
xor edi, edi
mov esi, edx
mov dword [esp + 0x20], 0
movdqa xmmword [esp + 0x10], xmm0
lea ecx, [esp + 0x210]
call fcn.004697c0
lea eax, [esp + 0x394]
push eax
call fcn.004698b0
add esp, 4
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x20]
movaps xmm0, xmmword [esp + 0x10]
mov dword [ecx + 0x1c], eax
mov eax, 1
mov dword [ecx + 0x18], ebx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], esi
movlps qword [ecx + 0x10], xmm0
mov dword [ecx], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x4ec]
cmp edx, dword [esp + 0x394]
mov ebx, edx
jne 0x4989ce
lea ecx, [esp + 0x394]
mov ebx, edx
call fcn.0042d140
mov edx, ebx
mov ebx, dword [esp + 0x39c]
mov eax, dword [esp + 0x398]
lea ecx, [ebx + ebx*4]
inc ebx
cmp ebx, 0x7ffffffe
mov dword [eax + ecx*4], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esp + 0x39c], ebx
mov dword [esp + 0x4ec], edx
jbe 0x498a2b
movdqa xmm0, xmmword [0x4de560]
mov dword [esp + 0x20], 0
mov esi, ebx
xor edi, edi
jmp 0x498957
cmp ebx, dword [esp + 0x394]
mov esi, edx
mov eax, ebx
jne 0x498a4d
lea ecx, [esp + 0x394]
mov edx, ebx
call fcn.0042d140
mov eax, dword [esp + 0x39c]
mov ecx, dword [esp + 0x398]
lea edx, [eax + eax*4]
inc eax
mov dword [ecx + edx*4], 0
mov dword [ecx + edx*4 + 4], 0
mov dword [ecx + edx*4 + 8], 0
mov dword [ecx + edx*4 + 0xc], esi
mov dword [ecx + edx*4 + 0x10], 0
mov dword [esp + 0x39c], eax
mov esi, ebx
lea ecx, [esp + 0xe8]
mov eax, dword [esp + 0x4ec]
mov dword [esp + 0x4f0], ebx
lea ebx, [esp + 0x394]
mov edx, ebx
push 1
push eax
call fcn.00418dd0
add esp, 8
mov edi, dword [esp + 0xe8]
cmp edi, 3
jne 0x499254
lea ecx, [esp + 0xe8]
mov edx, ebx
push 1
push esi
call fcn.00418dd0
add esp, 8
mov edi, dword [esp + 0xe8]
cmp edi, 3
jne 0x499254
lea ecx, [esp + 0xe8]
mov edx, ebx
push 0
push 0
call fcn.00418dd0
add esp, 8
mov edi, dword [esp + 0xe8]
cmp edi, 3
jne 0x499254
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
xor ebx, ebx
lea edi, [esp + 0x210]
shl eax, 4
add eax, edx
mov dword [esp + 0x54], eax
mov esi, dword [edx + 8]
mov dword [esp + 0x44], ebx
cmp esi, 0x7ffffffe
ja 0x499280
mov ecx, dword [esp + 0x4dc]
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x5c], edx
cmp ecx, esi
mov dword [esp + 0x500], eax
cmovae ecx, esi
mov dword [esp + 0x4dc], ecx
mov ecx, dword [esp + 0x4e0]
cmp ecx, esi
cmovbe ecx, esi
cmp ebx, eax
mov dword [esp + 0x4e0], ecx
mov ecx, dword [edx + 4]
mov dword [esp + 0x40], ecx
jne 0x49965c
cmp ebx, dword [esp + 0x3c4]
lea eax, [ebx + 1]
mov ecx, ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x58], eax
jne 0x498ba8
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x3c4]
call fcn.00469720
mov ecx, dword [esp + 0x3cc]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x3c8]
mov dword [edx + ecx*4], esi
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x390]
cmp byte [eax + 5], 0
je 0x498bd5
mov edx, dword [esp + 0x40]
mov ecx, edi
push esi
call fcn.0041ecc0
add esp, 4
mov ebx, dword [esp + 0x4ec]
test esi, esi
je 0x4991c8
mov ecx, dword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x3c], 0
add esi, ecx
mov dword [esp + 0x60], esi
jmp 0x498c56
or cl, 0x20
mov eax, ecx
movzx eax, al
lea ecx, [esp + 0xe8]
lea edx, [esp + 0x394]
push ebx
push eax
push dword [esp + 0x28]
call fcn.00416830
add esp, 0xc
mov edi, dword [esp + 0xe8]
cmp edi, 3
jne 0x499254
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
inc dword [esp + 0x3c]
lea edi, [esp + 0x210]
mov dword [esp + 0x20], ebx
inc ecx
cmp ecx, esi
je 0x4991c8
movzx ebx, byte [ecx]
test dl, 1
mov al, 1
mov byte [esp + 0x10], bl
jne 0x498c92
mov ebx, ecx
mov edx, dword [esp + 0x39c]
mov ecx, dword [esp + 0x20]
cmp ecx, edx
jae 0x499465
mov eax, dword [esp + 0x398]
lea ecx, [ecx + ecx*4]
cmp dword [eax + ecx*4 + 8], 0
mov ecx, ebx
movzx ebx, byte [esp + 0x10]
setne al
mov edx, dword [esp + 0x390]
test al, al
je 0x498ca7
cmp byte [edx + 4], 1
je 0x4991f6
test bl, bl
mov dword [esp + 4], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x40], ecx
je 0x498d94
mov eax, ebx
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 1
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
dec al
mov ecx, eax
mov ah, al
and al, 7
and cl, 0x78
shr ah, 7
shr cl, 3
neg cl
movsx edx, cl
mov ecx, eax
mov edi, dword [esp + edx + 0xe0]
mov dword [esp + 0xc], edi
shl edi, cl
not cl
mov ebx, dword [esp + edx + 0xdc]
mov dword [esp + 8], ebx
shr ebx, 1
shr ebx, cl
mov esi, dword [esp + edx + 0xe4]
mov ecx, eax
mov edx, dword [esp + edx + 0xd8]
or ebx, edi
mov edi, dword [esp + 0xc]
shld esi, edi, cl
movzx edi, ah
mov eax, dword [esp + 8]
shl edi, 4
or dword [esp + edi + 0x1f8], ebx
movzx ebx, byte [esp + 0x10]
or dword [esp + edi + 0x1fc], esi
shld eax, edx, cl
shl edx, cl
or dword [esp + edi + 0x1f0], edx
or dword [esp + edi + 0x1f4], eax
mov ecx, ebx
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 1
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov eax, ebx
mov ah, bl
and cl, 0x78
and al, 7
shr cl, 3
neg cl
movsx edi, cl
mov ecx, eax
mov edx, dword [esp + edi + 0xc0]
mov dword [esp + 8], edx
shl edx, cl
not cl
mov esi, dword [esp + edi + 0xbc]
mov ebx, esi
mov dword [esp + 0xc], esi
shr ebx, 1
mov esi, dword [esp + edi + 0xc4]
shr ebx, cl
mov ecx, eax
or ebx, edx
mov edx, dword [esp + edi + 0xb8]
mov edi, dword [esp + 8]
shld esi, edi, cl
movzx edi, ah
mov eax, dword [esp + 0xc]
mov dword [esp + 8], edi
shr edi, 3
and edi, 0xfffffff0
or dword [esp + edi + 0x1fc], esi
or dword [esp + edi + 0x1f8], ebx
shld eax, edx, cl
shl edx, cl
or dword [esp + edi + 0x1f4], eax
mov eax, dword [esp + 4]
or dword [esp + edi + 0x1f0], edx
cmp byte [eax + 6], 0
je 0x49903c
movzx ecx, byte [esp + 0x10]
mov eax, ecx
add al, 0xbf
cmp al, 0x19
ja 0x498e8d
mov eax, ecx
or al, 0x20
jmp 0x498ea6
mov eax, ecx
xor cl, 0x20
add al, 0x9f
cmp al, 0x1a
movzx eax, cl
cmovae eax, dword [esp + 8]
test al, al
je 0x4991c1
mov edx, eax
mov dword [esp + 4], eax
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 1
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
dec dl
mov ecx, edx
mov ch, dl
and dl, 7
and cl, 0x78
shr ch, 7
shr cl, 3
neg cl
movsx esi, cl
mov cl, dl
mov eax, dword [esp + esi + 0xa0]
mov ebx, dword [esp + esi + 0x9c]
mov edi, eax
mov dword [esp + 0xc], ebx
shr ebx, 1
shl edi, cl
not cl
shr ebx, cl
mov cl, dl
mov edx, dword [esp + 0xc]
or ebx, edi
mov edi, dword [esp + esi + 0xa4]
mov esi, dword [esp + esi + 0x98]
shld edi, eax, cl
movzx eax, ch
shld edx, esi, cl
shl esi, cl
mov ecx, dword [esp + 4]
shl eax, 4
or dword [esp + eax + 0x1fc], edi
or dword [esp + eax + 0x1f0], esi
or dword [esp + eax + 0x1f4], edx
or dword [esp + eax + 0x1f8], ebx
mov ebx, ecx
mov eax, ebx
mov byte [esp + 0xc], bl
and bl, 7
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 1
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
and al, 0x78
mov dword [esp + 4], ebx
mov ecx, ebx
shr al, 3
neg al
movsx edx, al
mov edi, dword [esp + edx + 0x80]
mov esi, dword [esp + edx + 0x7c]
mov eax, edi
mov ebx, esi
shl eax, cl
not cl
shr ebx, 1
shr ebx, cl
mov ecx, dword [esp + 4]
or ebx, eax
mov eax, dword [esp + edx + 0x84]
mov edx, dword [esp + edx + 0x78]
shld eax, edi, cl
movzx ecx, byte [esp + 0xc]
shr cl, 7
movzx edi, cl
mov ecx, dword [esp + 4]
shl edi, 4
or dword [esp + edi + 0x1fc], eax
or dword [esp + edi + 0x1f8], ebx
shld esi, edx, cl
shl edx, cl
or dword [esp + edi + 0x1f0], edx
or dword [esp + edi + 0x1f4], esi
mov eax, dword [esp + 0x39c]
mov ecx, dword [esp + 0x20]
cmp eax, ecx
mov dword [esp + 4], eax
jbe 0x49944d
mov esi, dword [esp + 0x398]
lea eax, [ecx + ecx*4]
mov bh, byte [esp + 0x10]
mov ecx, dword [esi + eax*4 + 4]
test ecx, ecx
je 0x49909d
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x3b4]
movzx eax, byte [esp + eax + 0x3dc]
add ecx, eax
cmp ecx, edx
jae 0x49945b
shl ecx, 2
add ecx, dword [esp + 0x3b0]
mov ebx, dword [ecx]
cmp ebx, 1
jne 0x498c32
jmp 0x4990dc
mov ecx, dword [esp + 0x3a4]
mov edx, dword [esp + 0x3a8]
lea eax, [esi + eax*4]
nop
mov eax, dword [eax]
test eax, eax
je 0x4990dc
cmp eax, edx
jae 0x499290
lea edi, [eax + eax*8]
mov bl, byte [ecx + edi]
lea eax, [ecx + edi + 5]
cmp bl, bh
jb 0x4990b0
jne 0x4990dc
add ecx, edi
inc ecx
mov ebx, dword [ecx]
cmp ebx, 1
jne 0x498c32
cmp dword [esp + 0x3c], 0x7fffffff
jae 0x499625
mov ebx, dword [esp + 4]
cmp ebx, 0x7ffffffe
ja 0x498a12
mov edi, dword [esp + 0x4ec]
cmp ebx, dword [esp + 0x394]
mov eax, ebx
jne 0x499128
lea ecx, [esp + 0x394]
mov edx, ebx
call fcn.0042d140
mov esi, dword [esp + 0x398]
mov eax, dword [esp + 0x39c]
mov edx, dword [esp + 0x3c]
lea ecx, [eax + eax*4]
inc eax
mov dword [esi + ecx*4], 0
mov dword [esi + ecx*4 + 4], 0
mov dword [esi + ecx*4 + 8], 0
mov dword [esi + ecx*4 + 0xc], edi
mov dword [esi + ecx*4 + 0x10], edx
mov dword [esp + 0x39c], eax
lea ecx, [esp + 0xe8]
lea edx, [esp + 0x394]
push ebx
push dword [esp + 0xc]
push dword [esp + 0x28]
call fcn.00416830
add esp, 0xc
mov edi, dword [esp + 0xe8]
cmp edi, 3
jne 0x499254
mov eax, dword [esp + 0x390]
cmp byte [eax + 6], 0
je 0x498c32
movzx ecx, byte [esp + 0x10]
mov eax, ecx
add al, 0xbf
cmp al, 0x1a
jb 0x498bfe
mov edx, dword [esp + 8]
mov eax, ecx
xor cl, 0x20
add al, 0x9f
cmp al, 0x1a
movzx eax, cl
cmovb edx, eax
mov eax, edx
jmp 0x498c03
xor ecx, ecx
jmp 0x498f7d
lea ecx, [esp + 0xe8]
lea edx, [esp + 0x394]
push dword [esp + 0x48]
push ebx
call fcn.00416b40
add esp, 8
mov edi, dword [esp + 0xe8]
cmp edi, 3
jne 0x499254
lea edi, [esp + 0x210]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x58]
add edx, 0x10
cmp edx, dword [esp + 0x54]
jne 0x498b1e
mov esi, dword [esp + 0x39c]
cmp dword [esp + 0x394], esi
jbe 0x4992be
mov eax, dword [esp + 0x398]
test esi, esi
je 0x49929c
lea ecx, [esi*4]
lea edi, [ecx + ecx*4]
push edi
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
test eax, eax
jne 0x4992b0
mov ecx, 4
mov edx, edi
call fcn.004d6180
movsd xmm0, qword [esp + 0xf0]
mov eax, dword [esp + 0xfc]
mov esi, dword [esp + 0xec]
mov ebx, dword [esp + 0xf8]
movaps xmmword [esp + 0x10], xmm0
mov dword [esp + 0x20], eax
jmp 0x49895d
movd xmm0, esi
mov esi, ebx
mov edi, 2
jmp 0x498957
mov ecx, eax
push 0x4e303c
call fcn.004d63d0
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 4
mov dword [esp + 0x398], eax
mov dword [esp + 0x394], esi
lea edi, [esp + 0x1f0]
lea esi, [esp + 0xe8]
mov ecx, esi
mov edx, edi
call fcn.0041b8b0
push 0x100
push esi
lea eax, [esp + 0x3e4]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0xe8]
mov edx, edi
call fcn.00419270
mov edi, dword [esp + 0xe8]
cmp edi, 3
jne 0x499420
lea edi, [esp + 0x1f0]
mov ecx, edi
call fcn.00419430
lea ecx, [esp + 0xe8]
mov edx, edi
call fcn.00418aa0
mov ecx, dword [esp + 0xe8]
cmp ecx, 3
jne 0x49941e
lea ecx, [esp + 0xe8]
lea edx, [esp + 0x1f0]
call fcn.00417210
mov ecx, dword [esp + 0xe8]
cmp ecx, 3
jne 0x49941e
lea edi, [esp + 0x1f0]
mov ecx, edi
call fcn.004194b0
mov ecx, edi
call fcn.00418370
lea ecx, [esp + 0xe8]
lea edx, [esp + 0x210]
call fcn.0041ba90
mov eax, dword [esp + 0x3d0]
test eax, eax
je 0x4993a3
lock dec dword [eax]
jne 0x4993a3
mov ecx, dword [esp + 0x3d0]
mov edx, dword [esp + 0x3d4]
call fcn.0041e1f0
mov eax, dword [esp + 0xf0]
movq xmm0, qword [esp + 0xe8]
mov dword [edi + 0x1e8], eax
movq qword [edi + 0x1e0], xmm0
xor eax, eax
cmp dword [esp + 0x3d0], 0
setne al
mov eax, dword [esp + eax*8 + 0x4e8]
mov dword [esp + 0x4e4], eax
mov esi, dword [esp + 0x3a8]
cmp dword [esp + 0x3a0], esi
jbe 0x499491
mov eax, dword [esp + 0x3a4]
test esi, esi
je 0x49946f
lea edi, [esi + esi*8]
push edi
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
test eax, eax
jne 0x499483
mov ecx, 1
mov edx, edi
call fcn.004d6180
mov edi, ecx
movq xmm0, qword [esp + 0xf0]
mov ecx, dword [esp + 0xfc]
mov esi, dword [esp + 0xec]
mov ebx, dword [esp + 0xf8]
movdqa xmmword [esp + 0x10], xmm0
mov dword [esp + 0x20], ecx
jmp 0x49895d
mov edx, dword [esp + 4]
push 0x4e305c
call fcn.004d63d0
push 0x4e306c
call fcn.004d63d0
push 0x4e30c4
call fcn.004d63d0
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 1
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x3a0], esi
mov esi, dword [esp + 0x3b4]
cmp dword [esp + 0x3ac], esi
jbe 0x4994ee
mov eax, dword [esp + 0x3b0]
test esi, esi
je 0x4994cc
lea edi, [esi*4]
push edi
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
test eax, eax
jne 0x4994e0
jmp 0x499248
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 4
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3ac], esi
mov esi, dword [esp + 0x3c0]
cmp dword [esp + 0x3b8], esi
jbe 0x49954b
mov eax, dword [esp + 0x3bc]
test esi, esi
je 0x499529
lea edi, [esi*8]
push edi
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
test eax, eax
jne 0x49953d
jmp 0x499248
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 4
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3b8], esi
mov esi, dword [esp + 0x3cc]
cmp dword [esp + 0x3c4], esi
jbe 0x4995a8
mov eax, dword [esp + 0x3c8]
test esi, esi
je 0x499586
lea edi, [esi*4]
push edi
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
test eax, eax
jne 0x49959a
jmp 0x499248
push eax
push 0
push dword [0x5371d8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 4
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x3c4], esi
mov eax, dword [esp + 0x3ac]
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x3a4]
mov edi, dword [esp + 0x3a8]
mov dword [esp + 0x10], eax
lea eax, [esi + 0x20]
push 0x148
lea ecx, [esp + 0x3b4]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movups xmm0, xmmword [esp + 0x394]
lea ecx, [esp + 0x210]
movaps xmmword [esp + 0x20], xmm0
call fcn.004697c0
mov eax, dword [esp + 0x10]
movaps xmm0, xmmword [esp + 0x20]
mov dword [esi + 0x14], ebx
mov ecx, esi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], eax
movups xmmword [esi + 4], xmm0
xor eax, eax
jmp 0x49899b
mov ecx, 1
mov edx, 0x100
call fcn.004d6180
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xec], 0
mov ecx, str.patterns_longer_than_SmallIndex::MAX_are_not_allowed
mov edx, 0x34
mov dword [esp + 0xe8], eax
push 0x4dfcb8
push 0x4defc0
lea eax, [esp + 0xf0]
push eax
call fcn.004d6720
mov dword [esp + 0xe8], str.expected_number_of_patterns_to_match_pattern_ID
mov dword [esp + 0xec], 1
mov dword [esp + 0xf0], str._rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_src_sliceiter.rs
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
lea ecx, [esp + 0x44]
lea edx, [esp + 0x500]
push 0x4e30b4
lea eax, [esp + 0xec]
push eax
call fcn.004d8270