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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x488
call 0x51e88c
pop eax
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0xc]
test eax, eax
js 0x51e962
test byte [edx + 0xb], 1
je 0x51e8ac
cmp byte [edx + 0xd], 2
jne 0x51f741
cmp dword [edx + 0x20], 0
mov dword [esp + 0x50], ecx
jne 0x520549
xor edi, edi
mov dword [edx + 0x20], 0xffffffff
mov dword [esp + 0x18], edx
mov dword [edx + 0x24], edi
mov ebx, dword [edx + 0x3c]
mov esi, dword [edx + 0x34]
mov dword [edx + 0x3c], edi
test ebx, ebx
je 0x51e8e4
mov ecx, esi
call fcn.004f48c6
add esi, 0x10
dec ebx
jne 0x51e8d7
mov esi, dword [esp + 0x18]
mov dword [esi + 0x48], edi
mov ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0x54]
mov dword [esi + 0x54], edi
call fcn.004ed70b
mov dword [esi + 0x58], edi
inc dword [esi + 0x20]
jne 0x520550
cmp byte [esi + 0xa], 0
mov ecx, 0xa
setne byte [esi + 0x5c]
mov al, byte [esi + 0xb]
and al, 1
mov byte [esi + 0x5d], al
cmp byte [esi + 8], 0
movzx eax, byte [esi + 9]
cmovne ecx, eax
xor eax, eax
mov byte [esi + 0x5e], cl
mov edx, dword [esi]
mov ecx, dword [esi + 4]
cmp edx, 2
cmove edx, eax
test edx, edx
mov dword [esi + 0x2c], edx
mov dword [esi + 0x30], ecx
je 0x51e977
mov edx, dword [esi + 0x3c]
shl edx, 4
cmp edx, ecx
jbe 0x51e977
mov eax, dword [esp + 0x50]
mov dword [eax], 0x27
mov dword [eax + 4], ecx
mov dword [esi + 0x20], 0
jmp 0x52037d
mov dword [ecx], 0x25
mov dword [ecx + 4], eax
mov dword [ecx + 8], 0x7fffffff
jmp 0x52037d
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [esi + 0x20], 0
lea ecx, [ecx*4]
cmp ecx, eax
je 0x51ea49
mov edx, dword [ebx + eax]
add eax, 4
mov edx, dword [edx + 0x18]
test byte [edx + 0x1c], 1
jne 0x51e98b
xor eax, eax
lea esi, [esp + 0x208]
lea edi, [esp + 0x308]
inc eax
mov ecx, edi
mov edx, esi
mov dword [esi], eax
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
call fcn.005460a3
mov ecx, edi
xor edx, edx
push 0xff
call fcn.005460e1
add esp, 4
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
xor eax, eax
lea edx, [esp + 0x208]
inc eax
movsd qword [esi + 0xc], xmm1
movsd qword [esi + 4], xmm0
mov dword [esi], eax
lea esi, [esp + 0x328]
mov ecx, esi
call fcn.004ea724
mov edx, dword [esp + 0x18]
lea edi, [esp + 0x90]
xor eax, eax
mov ecx, edi
push eax
push eax
push esi
call fcn.004f27e2
add esp, 0xc
mov eax, dword [edi]
cmp eax, 0x2a
jne 0x51f762
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x94]
lea ecx, [esp + 0x328]
mov dword [esp + 4], eax
call fcn.004ea81e
jmp 0x51ea6f
mov edx, esi
lea esi, [esp + 0x90]
mov ecx, esi
call fcn.004f27a4
mov eax, dword [esi]
cmp eax, 0x2a
jne 0x51f74c
mov edi, dword [esp + 0x94]
mov dword [esp + 4], edi
cmp dword [ebp + 0xc], 0
je 0x51ea97
mov edx, dword [esp + 0x18]
lea esi, [esp + 0x90]
mov ecx, esi
push dword [ebx]
call fcn.004f48ef
add esp, 4
mov edx, dword [esi]
cmp edx, 0x2b
jne 0x51f79e
mov edx, dword [esp + 0x18]
lea esi, [esp + 0x208]
mov ecx, esi
call fcn.004f46a5
mov edx, dword [esi]
cmp edx, 0x2a
jne 0x520350
mov ebx, dword [esp + 0x20c]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x18]
lea esi, [esp + 0x90]
mov ecx, esi
mov edx, edi
push ebx
push dword [esp + 8]
call fcn.004f24f8
add esp, 8
mov eax, dword [esi]
cmp eax, 0x2a
jne 0x51f802
cmp dword [edi + 0x20], 0
jne 0x5205d9
mov dword [edi + 0x20], 0xffffffff
cmp dword [edi + 0x24], 0
jne 0x5205e3
mov dword [esp], ebx
mov ecx, 0x30
mov edx, 4
mov ebx, 4
mov al, byte [0x803894]
call fcn.004889b0
test eax, eax
je 0x5205c8
mov edi, eax
xor eax, eax
inc eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [esp + 0x30], eax
mov dword [edi + 8], ebx
xor ebx, ebx
mov eax, 4
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], 8
mov dword [edi + 0x18], ebx
mov dword [edi + 0x1c], ebx
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ebx
mov dword [edi + 0x28], ebx
mov dword [edi + 0x2c], ebx
push 0x100
push ebx
push esi
call fcn.0064ad90
add esp, 0xc
mov byte [esp + ebx + 0x90], bl
inc ebx
cmp ebx, 0x100
jne 0x51eb6b
lea ebx, [esp + 0x328]
push 0x100
push esi
push ebx
call fcn.0064a810
add esp, 0xc
mov esi, dword [esp + 0x18]
mov eax, 4
xor ecx, ecx
mov dword [ebx + 0x134], eax
mov dword [ebx + 0x138], ecx
mov dword [ebx + 0x13c], ecx
mov dword [ebx + 0x120], ecx
mov dword [ebx + 0x124], ecx
mov dword [ebx + 0x140], eax
mov dword [ebx + 0x144], ecx
mov dword [ebx + 0x148], ecx
mov dword [ebx + 0x14c], edi
mov dword [ebx + 0x104], ecx
mov dword [ebx + 0x100], ecx
mov dword [ebx + 0x10c], ecx
mov dword [ebx + 0x108], ecx
mov dword [ebx + 0x114], ecx
mov dword [ebx + 0x110], ecx
mov dword [ebx + 0x11c], ecx
mov dword [ebx + 0x118], ecx
mov dword [ebx + 0x151], ecx
mov dword [ebx + 0x128], ecx
mov dword [ebx + 0x12c], ecx
mov dword [ebx + 0x130], ecx
mov dl, byte [esi + 0x5c]
mov byte [ebx + 0x153], dl
mov dl, byte [esi + 0x5d]
mov byte [ebx + 0x154], dl
mov dl, byte [esi + 0x5e]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x24], ecx
mov byte [ebx + 0x150], dl
mov edi, dword [esi + 0x3c]
test edi, edi
je 0x51ec5f
lea ecx, [esp + 0x1c]
mov edx, edi
call fcn.004f5be3
mov eax, dword [esp]
mov dword [esp + 4], edi
mov edi, dword [esi + 0x40]
mov esi, dword [esi + 0x48]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x10]
mov ecx, esi
mov dword [esp + 0x44c], eax
call fcn.00489cad
mov ebx, eax
lea eax, [esi*4]
mov dword [esp + 0x10], edx
push eax
push edi
push ebx
call fcn.0064a810
add esp, 0xc
cmp dword [esp + 0x46c], 0
je 0x51ecbc
push dword [esp + 0x468]
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x468], ebx
mov edx, 4
mov dword [esp + 0x46c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x470], esi
mov ecx, dword [eax + 0x54]
mov esi, dword [eax + 0x4c]
xor eax, eax
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], 8
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
test ecx, ecx
je 0x51efb5
lea eax, [ecx + ecx*2]
mov ecx, esi
lea eax, [esi + eax*4]
mov dword [esp + 0x58], eax
xor eax, eax
mov esi, dword [ecx + 8]
mov dword [esp + 0x10], eax
test esi, esi
je 0x520016
mov ebx, dword [ecx]
cmp dword [ebx], 0
jne 0x520020
mov edx, dword [esp + 0x10]
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x90]
call fcn.004f7d4d
cmp esi, 1
je 0x51ef91
add ebx, 8
xor eax, eax
lea esi, [esi*8 - 8]
inc eax
mov edi, dword [ebx]
mov dword [esp], eax
mov dword [esp + 8], ebx
mov eax, ebx
mov ebx, dword [esp + 0x98]
mov ecx, dword [esp + 0x10]
test edi, edi
cmove eax, edi
cmp ebx, ecx
jbe 0x520225
mov edx, dword [esp + 0x90]
mov dword [esp + 0xc], esi
mov esi, dword [edx + ecx*8 + 4]
add esi, 2
cmp esi, 0x7ffffffe
ja 0x51f85b
test edi, edi
mov dword [edx + ecx*8 + 4], esi
je 0x51eed1
mov esi, dword [eax + 4]
mov ebx, dword [eax]
mov ecx, esi
add ebx, 8
call fcn.004f471c
mov edi, eax
add eax, 8
push esi
mov esi, dword [esp + 0x14]
push ebx
mov ebx, edx
mov dword [esp + 0x1c], eax
push eax
call fcn.0064a810
add esp, 0xc
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x208], edi
mov dword [esp + 0x20c], ebx
cmp edx, esi
jbe 0x52023b
shl esi, 5
mov edx, dword [esp + 0x14]
add esi, dword [esp + 0x9c]
mov ecx, esi
push ebx
call fcn.004f64fa
add esp, 4
test al, al
mov eax, dword [esp]
jne 0x51f893
lock inc dword [edi]
jle 0x5205ab
mov ecx, esi
mov edx, edi
push eax
mov edi, ebx
push ebx
call fcn.004f6b07
add esp, 8
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x10]
cmp edx, ecx
jbe 0x520265
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xa8]
lea eax, [ecx + ecx*2]
mov esi, dword [esp + 0x208]
mov ecx, dword [esp + 0x20c]
lea ebx, [edx + eax*4]
mov dword [esp + 0x28], edx
mov edx, dword [ebx + 8]
cmp edx, dword [ebx + 4]
jne 0x51eeaa
mov dword [esp + 0x40], ecx
mov ecx, ebx
call fcn.004f478e
mov ecx, dword [esp + 0x40]
mov edx, dword [ebx + 8]
mov eax, dword [ebx]
mov dword [eax + edx*8], esi
mov dword [eax + edx*8 + 4], ecx
inc dword [ebx + 8]
mov eax, dword [esp + 0xb4]
mov ebx, dword [esp + 0x98]
lea eax, [eax + edi*2 + 0x14]
mov dword [esp + 0xb4], eax
jmp 0x51ef1b
mov edx, dword [esp + 0xb0]
cmp edx, ecx
jbe 0x52026f
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xa8]
lea eax, [ecx + ecx*2]
lea esi, [edx + eax*4]
mov dword [esp + 0x28], edx
mov edx, dword [esi + 8]
cmp edx, dword [esi + 4]
jne 0x51ef07
mov ecx, esi
call fcn.004f478e
mov edx, dword [esi + 8]
mov eax, dword [esi]
mov dword [eax + edx*8], 0
inc dword [esi + 8]
add dword [esp + 0xb4], 8
mov edi, dword [esp]
mov ecx, dword [esp + 0x10]
lea eax, [edi + 1]
cmp ebx, ecx
mov dword [esp + 0x1ec], eax
jbe 0x52055c
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 8]
mov edx, dword [esi + ecx*8 + 4]
sub edx, dword [esi + ecx*8]
shr edx, 1
lea esi, [edx + 1]
cmp edi, edx
mov dword [esp + 0x68], esi
jne 0x520564
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x1ec], eax
cmp edx, ecx
jbe 0x520231
mov edx, dword [esp + 0x28]
lea ecx, [ecx + ecx*2]
mov ecx, dword [edx + ecx*4 + 8]
cmp eax, ecx
mov dword [esp + 0x68], ecx
jne 0x520583
add ebx, 8
add esi, 0xfffffff8
jne 0x51ed8a
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x10]
add ecx, 0xc
inc eax
cmp ecx, dword [esp + 0x58]
jne 0x51ed46
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x98]
lea esi, [esp + 0x208]
mov ecx, esi
push eax
call fcn.004f7c54
add esp, 4
mov eax, dword [esi]
cmp eax, 5
mov dword [esp + 0x30], eax
jne 0x51f863
mov al, byte [0x803894]
mov ecx, 0x30
mov edx, 4
call fcn.004889b0
test eax, eax
je 0x5205c8
mov ebx, eax
xor eax, eax
lea esi, [esp + 0x90]
mov ecx, 0xa
inc eax
mov edi, ebx
mov dword [ebx], eax
mov dword [esp + 0x14], eax
mov dword [ebx + 4], eax
add edi, 8
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x474]
lock dec dword [eax]
jne 0x51f02b
mov ecx, dword [esp + 0x474]
call fcn.004ed57e
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 4]
mov dword [esp + 0x474], ebx
mov edi, dword [eax + 0x34]
mov ecx, esi
call fcn.004ebfc0
test esi, esi
mov dword [esp + 0x10], edi
je 0x51fa17
mov ecx, esi
shl esi, 4
xor ebx, ebx
add esi, edi
mov dword [esp], esi
cmp ebx, ecx
je 0x5205af
mov eax, dword [edi]
mov eax, dword [eax*4 + 0x520704]
add eax, dword [esp + 0x54]
jmp eax
mov dword [ecx], 0x29
jmp 0x52037d
lea esi, [esp + 0x9c]
mov ecx, dword [esi - 8]
mov ebx, dword [esi - 4]
mov dword [esp + 4], ecx
jmp 0x520363
lea esi, [esp + 0x9c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esi - 8]
mov ebx, dword [esi - 4]
lea edi, [edx + 0xc]
mov dword [esp + 4], ecx
mov ecx, 0xd
rep movsd dword es:[edi], dword [esi]
mov dword [edx], eax
lea ecx, [esp + 0x328]
mov eax, dword [esp + 4]
mov dword [edx + 4], eax
mov dword [edx + 8], ebx
call fcn.004ea81e
jmp 0x52037d
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
cmp edx, 0x2a
jne 0x51f81e
cmp dword [ebp + 0xc], 1
je 0x51f7ea
mov edx, dword [esp + 0x18]
lea esi, [esp + 0x90]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov ecx, esi
push dword [ebx + 4]
call fcn.004f48ef
mov ecx, dword [esp + 0x10]
add esp, 4
mov edx, dword [esi]
mov eax, dword [esp + 8]
cmp edx, 0x2b
jne 0x51f8d6
mov dword [esp + 0x20c], eax
mov dword [esp + 0x210], ecx
mov edx, 0x2a
jmp 0x51eaab
mov edx, dword [esp + 0x50]
lea esi, [esp + 0x94]
mov ecx, 0xf
lea edi, [edx + 4]
rep movsd dword es:[edi], dword [esi]
mov dword [edx], eax
jmp 0x52037d
mov dword [esp + 8], eax
lea eax, [esp + 0x214]
mov dword [esp + 0xc], ecx
mov ebx, edx
mov edx, edi
lea esi, [esp + 0x9c]
mov ecx, 0xd
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, edx
mov edx, ebx
mov dword [eax - 0xc], ebx
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov dword [eax - 8], ecx
mov dword [eax - 4], esi
jmp 0x51eaab
mov ebx, dword [esp]
jmp 0x520028
mov eax, dword [esp + 0x20c]
mov ecx, dword [esp + 0x218]
mov ebx, dword [esp + 0x210]
mov edi, dword [esp + 0x214]
mov esi, dword [esp + 0x21c]
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
jmp 0x520028
mov ecx, ebx
call fcn.0059c336
mov ecx, ebx
mov ebx, eax
mov dword [esp + 0x54], edx
mov dword [esp + 4], ecx
push ecx
push dword [esp + 0x18]
push eax
call fcn.0064a810
add esp, 0xc
lock dec dword [edi]
jne 0x51f8c5
lea ecx, [esp + 0x208]
call fcn.004ed777
mov edi, dword [esp + 0x54]
mov dword [esp + 0x30], 4
jmp 0x520028
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x98]
cmp edx, 0x2a
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
jne 0x51f9ea
mov edi, dword [esp + 0x18]
lea esi, [esp + 0x90]
mov dword [esp + 0x28], eax
mov ecx, esi
mov edx, edi
call fcn.004f2758
mov edx, dword [esi]
cmp edx, 0x2a
jne 0x51fff4
lea esi, [esp + 0x90]
mov edx, edi
mov eax, dword [esi + 4]
mov ecx, esi
mov dword [esp], eax
call fcn.004f27a4
mov edx, dword [esi]
cmp edx, 0x2a
jne 0x51fff4
lea esi, [esp + 0x90]
mov edx, edi
mov eax, dword [esi + 4]
mov ecx, esi
mov dword [esp + 0x40], eax
push dword [esp + 8]
push dword [esp + 4]
call fcn.004f24f8
add esp, 8
mov edx, dword [esi]
cmp edx, 0x2a
jne 0x52033b
lea esi, [esp + 0x90]
mov edx, edi
mov ecx, esi
push dword [esp + 0x40]
push dword [esp + 0x10]
call fcn.004f24f8
add esp, 8
mov edx, dword [esi]
cmp edx, 0x2a
jne 0x52033b
lea esi, [esp + 0x90]
mov edx, edi
mov ecx, esi
push dword [esp + 0x14]
push dword [esp + 4]
call fcn.004f24f8
add esp, 8
mov edx, dword [esi]
cmp edx, 0x2a
jne 0x52033b
lea esi, [esp + 0x90]
mov edx, edi
mov ecx, esi
push dword [esp + 0x40]
push dword [esp + 0x2c]
call fcn.004f24f8
add esp, 8
mov edx, dword [esi]
cmp edx, 0x2a
jne 0x52033b
cmp dword [ebp + 0xc], 2
jne 0x520292
mov ebx, dword [esp]
jmp 0x51eabf
lea ebx, [esp + 0x214]
lea esi, [esp + 0x9c]
mov ecx, 0xd
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov dword [ebx - 0xc], edx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov dword [ebx - 8], ecx
mov dword [ebx - 4], eax
jmp 0x51eaab
mov dword [esp], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x51fb1b
mov ecx, dword [esp + 0x44]
lea eax, [ecx + eax*8]
mov dword [esp + 0xc], eax
mov esi, dword [ecx]
mov dword [esp + 8], ecx
cmp dword [esp], esi
jbe 0x520283
mov eax, dword [esp + 0x14]
cmp byte [eax + esi], 0
je 0x51fa68
mov ecx, dword [esp + 8]
add ecx, 8
cmp ecx, dword [esp + 0xc]
jne 0x51fa3d
jmp 0x51fb1b
mov eax, dword [esp + 8]
mov edi, dword [eax + 4]
cmp dword [esp + 4], edi
mov ebx, edi
jbe 0x520385
mov ecx, ebx
shl ecx, 4
add ecx, dword [esp + 0x10]
call fcn.004f7861
cmp eax, 1
jne 0x51fa9b
cmp dword [esp + 4], edx
mov ebx, edx
ja 0x51fa7b
jmp 0x520387
mov edx, dword [esp + 0x24]
cmp edx, ebx
jbe 0x52039c
cmp edx, esi
jbe 0x5203a5
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + ebx*4]
mov dword [eax + esi*4], ecx
mov ecx, dword [esp + 0x14]
mov byte [ecx + esi], 1
mov ecx, edi
shl ecx, 4
add ecx, dword [esp + 0x10]
call fcn.004f7861
cmp eax, 1
jne 0x51fa56
mov eax, dword [esp + 0x24]
cmp eax, ebx
jbe 0x5201cc
cmp eax, edi
jbe 0x5201da
mov eax, dword [esp + 0x1c]
cmp dword [esp], edi
mov ecx, dword [eax + ebx*4]
mov dword [eax + edi*4], ecx
jbe 0x5201e8
mov eax, dword [esp + 0x14]
cmp dword [esp + 4], edx
mov byte [eax + edi], 1
mov edi, edx
ja 0x51fac1
mov ecx, edx
mov edx, dword [esp + 4]
push 0x76950c
jmp 0x520392
mov ecx, dword [esp + 0x464]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
test ecx, ecx
je 0x51fc2c
mov esi, dword [esp + 0x45c]
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*4]
mov dword [esp + 4], ecx
mov ecx, dword [esi]
mov ecx, dword [ecx*4 + 0x52072c]
add ecx, dword [esp + 0x54]
jmp ecx
mov ecx, dword [esp + 0x448]
cmp ecx, edx
jae 0x520439
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x44c]
cmp ecx, edx
jae 0x520443
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x44c], ecx
mov esi, dword [esp + 0x470]
test esi, esi
je 0x51fc8a
mov edi, dword [esp + 0x468]
shl esi, 2
mov ecx, dword [edi]
cmp ecx, edx
jae 0x520279
mov ecx, dword [eax + ecx*4]
mov dword [edi], ecx
add edi, 4
add esi, 0xfffffffc
jne 0x51fc73
push 0x158
lea eax, [esp + 0x32c]
push eax
lea ebx, [esp + 0x98]
push ebx
call fcn.0064a810
add esp, 0xc
mov esi, 0x100
lea edi, [esp + 0x208]
lea edx, [ebx + esi]
mov ecx, edi
call fcn.004f7754
push esi
push edi
push ebx
call fcn.0064a810
add esp, 0xc
mov edi, dword [esp + 0x1cc]
mov ecx, 4
xor eax, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x208], ecx
mov dword [esp + 0x20c], eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], ecx
mov dword [esp + 0x218], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x21c], eax
test edi, edi
js 0x5206a9
mov dword [esp + 0x220], 0
je 0x51fd34
lea esi, [esp + 0x208]
mov edx, edi
mov ecx, esi
call fcn.004f5be3
mov eax, dword [esi + 0x14]
mov edx, edi
sub edx, eax
jbe 0x51fd48
lea ecx, [esp + 0x214]
call fcn.004f5be3
jmp 0x51fd4f
mov dword [esp + 0x21c], edi
mov eax, dword [esp + 0x220]
movsd xmm0, qword [esp + 0x218]
movsd xmm2, qword [esp + 0x208]
movsd xmm1, qword [esp + 0x210]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x1d8]
movsd qword [esp + 0x78], xmm0
movsd qword [esp + 0x70], xmm1
movsd qword [esp + 0x68], xmm2
test eax, eax
je 0x5200f7
mov ecx, dword [esp + 0x1d0]
mov edx, dword [esp + 0x1c4]
mov dword [esp + 0x40], edi
mov dword [esp], 4
lea eax, [ecx + eax*4]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], eax
mov al, byte [esp + 0x1e2]
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1bc]
mov esi, dword [ecx]
cmp dword [esp + 0x38], 0
mov dword [esp + 0x88], eax
mov eax, 0
mov dword [esp + 0x58], ecx
jne 0x51fe21
lea ecx, [esp + 0x34]
xor edx, edx
call fcn.00489c4e
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp]
mov dword [ecx + eax*4], esi
xor esi, esi
mov ebx, dword [esp + 0x3c]
inc ebx
mov dword [esp + 0x3c], ebx
jne 0x51fe5c
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x88]
add ecx, 4
or eax, dword [esp + 0x30]
cmp ecx, dword [esp + 0x84]
jne 0x51fdf2
jmp 0x5200de
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], 0
xor esi, esi
mov dword [esp], eax
mov ecx, dword [esp]
lea eax, [ebx - 1]
mov dword [esp + 0x3c], eax
mov edx, eax
mov edi, dword [esp + 0x38]
mov ecx, dword [ecx + ebx*4 - 4]
cmp dword [esp + 4], ecx
mov dword [esp + 0x64], ecx
jbe 0x5201be
mov eax, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
cmp eax, esi
jae 0x51feb9
cmp dword [esp + 8], eax
jbe 0x520215
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0xc]
cmp dword [esi + eax*4], ecx
mov esi, dword [esp + 0x28]
je 0x51ffbd
cmp esi, dword [esp + 8]
mov dword [esp + 0x8c], esi
jae 0x5204c9
mov eax, dword [esp + 0xc]
mov dword [eax + esi*4], ecx
mov eax, dword [esp + 0x64]
cmp dword [esp + 4], eax
jbe 0x5201f7
mov dword [esp + 0x28], ebx
mov ebx, edi
mov edi, esi
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x40], ecx
mov dword [esi + eax*4], edi
jbe 0x520207
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x5c]
mov esi, edi
mov edi, edx
inc esi
lea eax, [ecx + eax*4]
mov ecx, dword [eax]
mov ecx, dword [ecx*4 + 0x520750]
add ecx, dword [esp + 0x54]
jmp ecx
mov edi, edx
test edi, edi
mov ebx, edi
jne 0x51fe6d
jmp 0x51fe3c
lea esi, [esp + 0x98]
lea eax, [esp + 0x210]
mov ecx, 0xe
mov ebx, dword [esi - 4]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax - 4], ebx
jmp 0x520350
mov dword [esp + 0x30], 2
jmp 0x520028
mov dword [esp + 0x30], 3
lea ecx, [esp + 0x90]
call fcn.004ed5a5
cmp dword [esp + 0x20], 0
je 0x52004d
push dword [esp + 0x1c]
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x48], 0
je 0x520066
push dword [esp + 0x44]
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
lea ecx, [esp + 0x328]
call fcn.004ed4dc
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x30]
movsd xmm1, qword [esp + 0x310]
movsd xmm0, qword [esp + 0x308]
movsd xmm2, qword [esp + 0x318]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 4]
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], ebx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], esi
movsd qword [eax + 0x28], xmm1
movsd xmm1, qword [esp + 0x320]
mov ecx, dword [esp + 0x18]
movsd qword [eax + 0x20], xmm0
movsd qword [eax + 0x30], xmm2
movsd qword [eax + 0x38], xmm1
mov dword [eax], 0x23
inc dword [ecx + 0x20]
jmp 0x52037d
mov cl, byte [esp + 0x2f]
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x80], esi
mov byte [esp + 0x1e2], cl
mov al, byte [0x803894]
mov ecx, 0x160
mov edx, 8
call fcn.004889b0
test eax, eax
je 0x5206e4
mov esi, eax
xor eax, eax
inc eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov eax, esi
add eax, 8
push 0x158
lea ecx, [esp + 0x94]
push ecx
push eax
call fcn.0064a810
add esp, 0xc
lea ecx, [esp + 0x68]
call fcn.00431c49
cmp dword [esp + 0x38], 0
je 0x52015a
push dword [esp + 0x34]
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x60], 0
je 0x520173
push dword [esp + 0x14]
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x20], 0
je 0x52018c
push dword [esp + 0x1c]
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x48], 0
je 0x5201a5
push dword [esp + 0x44]
push 0
push dword [0x8032a8]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
inc dword [eax + 0x20]
mov dword [ecx + 4], esi
mov dword [ecx], 0x2a
jmp 0x52037d
mov edx, dword [esp + 4]
push 0x76b264
jmp 0x520392
mov ecx, ebx
mov edx, eax
push 0x76951c
jmp 0x520392
mov ecx, edi
mov edx, eax
push 0x76952c
jmp 0x520392
mov edx, dword [esp]
mov ecx, edi
push 0x76953c
jmp 0x520392
mov edx, dword [esp + 4]
mov ecx, eax
push 0x76b254
jmp 0x520392
mov edx, dword [esp + 0x40]
push 0x769d58
jmp 0x520392
mov edx, dword [esp + 8]
mov ecx, eax
push 0x76b274
jmp 0x520392
mov edx, ebx
push 0x76a4b8
jmp 0x520392
push 0x76a508
jmp 0x520392
mov ecx, esi
push 0x76a4c8
jmp 0x520392
push 0x76a4d8
jmp 0x520392
push 0x76a4e8
jmp 0x520392
push 0x769da8
jmp 0x520392
mov edx, dword [esp]
mov ecx, esi
push 0x7694cc
jmp 0x520392
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 0x18]
add ebx, 8
lea esi, [eax*4 - 8]
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x328]
push dword [ebx]
call fcn.004f48ef
add esp, 4
mov edx, dword [esp + 0x328]
cmp edx, 0x2b
je 0x51f9e2
mov ecx, dword [esp + 0x330]
mov eax, dword [esp + 0x32c]
cmp edx, 0x2a
mov dword [esp + 8], ecx
lea ecx, [esp + 0x90]
jne 0x520410
mov edx, edi
push eax
push dword [esp + 4]
call fcn.004f24f8
add esp, 8
mov edx, dword [esp + 0x90]
cmp edx, 0x2a
jne 0x52033b
mov edx, edi
lea ecx, [esp + 0x90]
push dword [esp + 0x40]
push dword [esp + 0xc]
call fcn.004f24f8
add esp, 8
mov edx, dword [esp + 0x90]
cmp edx, 0x2a
jne 0x52033b
add ebx, 4
add esi, 0xfffffffc
jne 0x5202a3
jmp 0x51f9e2
lea esi, [esp + 0x94]
lea edi, [esp + 0x20c]
mov ecx, 0xf
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x214]
mov eax, dword [esi - 8]
mov ebx, dword [esi - 4]
mov dword [esp + 4], eax
mov eax, edx
mov edx, dword [esp + 0x50]
mov ecx, 0xd
lea edi, [edx + 0xc]
rep movsd dword es:[edi], dword [esi]
mov dword [edx], eax
mov eax, dword [esp + 4]
mov dword [edx + 4], eax
mov dword [edx + 8], ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, edi
mov ecx, edx
mov edx, dword [esp + 4]
push 0x7694dc
call fcn.006521f0
add esp, 4
ud2
mov ecx, ebx
push 0x7694ec
jmp 0x520392
mov ecx, esi
push 0x7694fc
jmp 0x520392
lea ebx, [esp + 0x214]
mov ecx, 0xd
lea esi, [esp + 0x334]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov dword [ebx - 0xc], edx
mov dword [ebx - 8], eax
mov eax, dword [esp + 8]
mov dword [ebx - 4], eax
jmp 0x520350
push 0x769d88
jmp 0x520392
push 0x769d98
jmp 0x520392
mov ecx, dword [esp + 8]
lea eax, [esp + 0x204]
mov esi, 3
lea edx, [esp + 0x208]
mov dword [eax], ecx
lea ecx, [esp + 0x8c]
mov dword [esp + 0x208], ecx
mov ecx, 0x42c77c
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], ecx
lea ecx, [esp + 0x64]
mov dword [esp + 0x218], ecx
lea ecx, [esp + 0x1ec]
mov dword [esp + 0x21c], fcn.004ef497
mov dword [ecx], 0x76b22c
mov dword [ecx + 4], esi
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], edx
mov edx, 0x76b244
mov dword [ecx + 0xc], esi
call fcn.00652150
ud2
mov ecx, 0x769808
jmp 0x520555
mov ecx, 0x769818
call fcn.00652520
ud2
mov dword [esp + 0x68], 0
lea eax, [esp + 0x208]
lea ecx, [esp + 0x1ec]
lea edx, [esp + 0x68]
mov dword [eax], 0
push 0x76a4f8
jmp 0x5205a0
lea eax, [esp + 0x208]
lea ecx, [esp + 0x1ec]
lea edx, [esp + 0x68]
mov dword [eax], 0
push 0x76a518
push eax
call fcn.00651647
add esp, 8
ud2
ud2
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_syncmpmclist.rs
mov edx, 0x2b
push 0x76bf70
call fcn.006522d0
jmp 0x520397
mov ecx, 4
mov edx, 0x30
call fcn.00651860
ud2
mov ecx, 0x769828
jmp 0x520555
lea ecx, [esp + 0x90]
mov edx, 0x7694bc
xor eax, eax
mov dword [ecx], 0x7694b4
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], eax
mov dword [ecx + 8], 0x7f59e0
mov dword [ecx + 0xc], eax
jmp 0x520542
xor edx, edx
lea eax, [esp + 0x1ec]
lea ecx, [esp + 0x68]
inc edx
mov dword [ecx], str.sparse_set_capacity_cannot_excced
mov dword [eax], 0x76afdc
mov dword [eax + 4], 0x42c77c
mov dword [ecx + 4], edx
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov edx, 0x76b1f4
jmp 0x520542
mov ecx, 8
mov edx, 0x160
jmp 0x5205d2