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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc8
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0x48]
call fcn.005dfad0
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x30], eax
cmp edi, ecx
mov dword [esp + 0xc], ecx
je 0x52f8ea
mov esi, dword [edi]
lea edx, [edi + 0xc]
test esi, esi
je 0x52f8e8
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
test edi, edi
mov dword [esp + 4], eax
mov eax, edi
mov dword [esp], edi
je 0x52ea5c
mov eax, dword [esp]
mov ecx, esi
mov dword [esp + 8], edx
add eax, esi
jmp 0x52e9f6
mov ecx, edx
cmp ecx, eax
je 0x52ea4c
movzx ebx, byte [ecx]
lea edx, [ecx + 1]
test bl, bl
jns 0x52e9f0
add ecx, 2
cmp bl, 0xe0
jae 0x52ea0f
cmp edx, eax
cmove ecx, edx
jmp 0x52e9f2
cmp bl, 0xed
jne 0x52ea2c
cmp edx, eax
cmove ecx, edx
cmp ecx, eax
je 0x52ea4c
inc ecx
cmp edx, eax
je 0x52e9f2
cmp byte [edx], 0xa0
jb 0x52e9f2
jmp 0x52f96f
cmp edx, eax
mov edi, ecx
cmove edi, edx
xor ecx, ecx
cmp edi, eax
setne cl
add ecx, edi
cmp bl, 0xf0
jb 0x52e9f2
xor edx, edx
cmp ecx, eax
setne dl
add ecx, edx
jmp 0x52e9f2
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test esi, esi
je 0x52f8e8
mov eax, ecx
mov ebx, edx
sub eax, edx
mov edx, 0xc
sar eax, 2
imul ecx, eax, 0xaaaaaaab
mov eax, 0xffffffff
inc ecx
cmovne eax, ecx
mul edx
jo 0x52f8e1
mov edi, eax
test eax, eax
js 0x52f8e1
mov eax, dword [0x6f1130]
test eax, eax
jne 0x52eaa6
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x52eeca
mov dword [0x6f1130], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x52eeca
mov dword [eax], esi
mov esi, eax
mov ecx, 0xaaaaaaab
mov eax, edi
mul ecx
mov eax, dword [esp + 4]
mov ecx, ebx
mov dword [esp + 0x14], esi
shr edx, 3
mov dword [esi + 4], eax
mov eax, dword [esp]
mov dword [esi + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edx
mov edx, 1
mov dword [esp + 0x20], 1
jmp 0x52eb3a
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
cmp edx, dword [esp + 0x1c]
je 0x52ebe4
mov edi, dword [esp]
lea eax, [edx + edx*2]
mov ebx, dword [esp + 4]
inc edx
mov dword [esp + 0x14], ecx
mov dword [ecx + eax*4], edi
mov edi, dword [esp + 0x2c]
mov dword [ecx + eax*4 + 4], edi
mov dword [ecx + eax*4 + 8], ebx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], edx
mov ecx, esi
cmp ecx, eax
je 0x52ec1a
mov edi, dword [ecx]
lea esi, [ecx + 0xc]
test edi, edi
mov dword [esp], edi
je 0x52ec1c
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 8], edx
test ecx, ecx
mov dword [esp + 0x2c], eax
mov eax, ecx
mov dword [esp + 4], ecx
je 0x52eb00
mov edx, dword [esp]
mov eax, dword [esp + 4]
add eax, edx
jmp 0x52eb8a
mov edx, ecx
cmp edx, eax
je 0x52eb00
movzx ebx, byte [edx]
lea ecx, [edx + 1]
test bl, bl
jns 0x52eb80
add edx, 2
cmp bl, 0xe0
jae 0x52eba3
cmp ecx, eax
cmove edx, ecx
jmp 0x52eb82
cmp bl, 0xed
jne 0x52ebc4
cmp ecx, eax
cmove edx, ecx
cmp edx, eax
je 0x52eb00
inc edx
cmp ecx, eax
je 0x52eb82
cmp byte [ecx], 0xa0
jb 0x52eb82
jmp 0x52f8a7
cmp ecx, eax
mov edi, edx
cmove edi, ecx
xor edx, edx
cmp edi, eax
setne dl
add edx, edi
cmp bl, 0xf0
jb 0x52eb82
xor ecx, ecx
cmp edx, eax
setne cl
add edx, ecx
jmp 0x52eb82
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ecx, 0xffffffff
sub eax, esi
sar eax, 2
imul eax, eax, 0xaaaaaaab
inc eax
cmove eax, ecx
lea ecx, [esp + 0x18]
push eax
call fcn.004161f0
mov edx, dword [esp + 0xc]
add esp, 4
mov ecx, dword [esp + 0x18]
jmp 0x52eb12
mov esi, eax
sub eax, esi
je 0x52ec5f
sar eax, 2
add esi, 4
imul eax, eax, 0xaaaaaaab
shl eax, 2
lea edi, [eax + eax*2]
jmp 0x52ec48
add esi, 0xc
add edi, 0xfffffff4
je 0x52ec5f
cmp dword [esi], 0
je 0x52ec40
push dword [esi - 4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x52ec40
mov eax, dword [esp + 0x10]
test eax, eax
je 0x52ec82
shl eax, 2
lea eax, [eax + eax*2]
test eax, eax
je 0x52ec82
push dword [esp + 0x30]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esp + 0x20]
test edi, edi
je 0x52f916
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea ecx, [edi + edi*2]
mov dword [esp + 0xb0], ecx
lea ecx, [ecx*4 - 0xc]
mov dword [esp], ecx
mov dword [esp + 0x98], eax
mov eax, dword [ebx]
mov esi, dword [ebx + 8]
mov dword [esp + 0xa0], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0xb4], eax
lea eax, [ebx + 0xc]
push ecx
push eax
push ebx
call sub.msvcrt.dll_memmove
add esp, 0xc
lea ecx, [esp + 0x48]
dec edi
call fcn.005df950
test esi, esi
js 0x52f8e1
je 0x52ed16
mov eax, dword [0x6f1130]
test eax, eax
jne 0x52ed04
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x52f69f
mov dword [0x6f1130], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
jne 0x52ed1b
jmp 0x52f69f
mov eax, 1
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x2c], edi
lea edi, [esp + 0x18]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 0
mov ecx, edi
push esi
call fcn.005e0680
add esp, 4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x48], 1
jne 0x52ed9e
mov edx, dword [esp + 0x20]
cmp byte [esp + 0x4c], 3
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
jne 0x52edc4
mov esi, dword [esp + 0x50]
mov eax, dword [esi + 4]
push dword [esi]
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
cmp dword [ecx + 4], 0
je 0x52ed9b
mov eax, dword [esi]
cmp dword [ecx + 8], 9
jb 0x52ed8d
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push esi
jmp 0x52edb7
mov edx, dword [esp + 0x54]
movsd xmm0, qword [esp + 0x4c]
test ecx, ecx
mov dword [esp + 0x20], edx
movsd qword [esp + 0x18], xmm0
je 0x52edc4
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push edi
call fcn.005e0110
add esp, 4
mov esi, edx
lea ecx, [esp + 0x48]
mov edx, eax
push esi
call fcn.005ed1f0
add esp, 4
mov edi, dword [esp + 0x48]
xor eax, eax
cmp edi, 1
sete al
mov eax, dword [esp + eax*4 + 0x50]
test eax, eax
mov dword [esp + 0xc], eax
js 0x52f8e1
mov esi, dword [esp + 0x4c]
je 0x52ee35
mov eax, dword [0x6f1130]
test eax, eax
jne 0x52ee1b
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x52f994
mov dword [0x6f1130], eax
push dword [esp + 0xc]
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x52f994
mov edi, dword [esp + 0x48]
jmp 0x52ee3a
mov eax, 1
push dword [esp + 0xc]
push esi
mov dword [esp + 0x9c], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
test edi, edi
je 0x52ee6b
cmp dword [esp + 0x50], 0
je 0x52ee6b
push dword [esp + 0x4c]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x1c], 0
mov esi, dword [esp + 0x2c]
je 0x52ee87
push dword [esp + 0x18]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov ecx, 0xc
mov eax, esi
mul ecx
jo 0x52f8e1
mov edi, eax
test eax, eax
js 0x52f8e1
test edi, edi
je 0x52eed8
mov eax, dword [0x6f1130]
test eax, eax
jne 0x52eebb
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x52eeca
mov dword [0x6f1130], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov esi, eax
test eax, eax
jne 0x52eedd
mov ecx, edi
mov edx, 4
call fcn.0040a640
ud2
mov esi, 4
mov ecx, 0xaaaaaaab
mov eax, edi
mov dword [esp + 0x38], esi
mul ecx
mov eax, dword [esp + 0x2c]
shr edx, 3
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], 0
cmp edx, eax
lea eax, [eax + eax*2]
lea edi, [ebx + eax*4]
jb 0x52f4ff
xor ecx, ecx
cmp ebx, edi
mov dword [esp + 0x8c], ebx
je 0x52efaf
lea eax, [ecx + ecx*2]
lea edi, [esi + eax*4]
mov esi, dword [esp]
nop word cs:[eax + eax]
nop
mov dword [esp], ecx
lea ecx, [esp + 0xbc]
lea eax, [esp + 0xb8]
mov dword [esp + 0x48], 0x684534
mov dword [esp + 0x4c], 2
mov dword [esp + 0x50], 0
lea edx, [esp + 0x48]
mov dword [esp + 0xb8], ebx
add ebx, 0xc
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], 0x55cec0
mov dword [esp + 0x5c], 1
call fcn.0040a660
mov eax, dword [esp + 0x20]
mov ecx, dword [esp]
mov dword [edi + 8], eax
inc ecx
movsd xmm0, qword [esp + 0x18]
movsd qword [edi], xmm0
add edi, 0xc
add esi, 0xfffffff4
jne 0x52ef30
mov esi, dword [esp + 0x38]
test ecx, ecx
mov dword [esp + 0x40], ecx
je 0x52f04f
lea eax, [ecx*4]
mov dword [esp], ecx
mov edx, 0xaaaaaaab
mov dword [esp + 4], esi
lea ecx, [eax + eax*2]
lea eax, [eax + eax*2 - 0xc]
mul edx
mov eax, esi
mov ebx, edx
shr ebx, 3
nop
test ecx, ecx
je 0x52f008
add ecx, 0xfffffff4
add ebx, dword [eax + 8]
lea eax, [eax + 0xc]
jae 0x52efe0
mov ecx, str.attempt_to_join_into_collection_with_len___usize::MAX_rustc_532d2b14c05f9bc20b2d27cbb5f4550d28343a36library_alloc_src_str.rs
mov edx, 0x35
push 0x68b764
call fcn.0045d290
add esp, 4
ud2
test ebx, ebx
js 0x52f8e1
mov eax, dword [esp + 4]
xor esi, esi
test ebx, ebx
je 0x52f05e
mov eax, dword [0x6f1130]
test eax, eax
jne 0x52f031
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x52f048
mov dword [0x6f1130], eax
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
mov eax, dword [esp + 4]
mov dword [esp + 8], ebx
jne 0x52f06b
mov ecx, ebx
jmp 0x52f998
mov esi, dword [0x6dd4e0]
xor ebx, ebx
xor edx, edx
jmp 0x52f107
mov edi, 1
mov dword [esp + 8], 0
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], 0
mov ecx, dword [eax]
mov eax, dword [eax + 8]
cmp ebx, eax
mov ebx, eax
jb 0x52f840
lea eax, [edi + esi]
push ebx
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, ebx
mov ebx, dword [esp + 8]
mov eax, dword [esp]
sub ebx, esi
cmp eax, 1
je 0x52f0f9
mov ecx, dword [esp + 4]
lea eax, [eax + eax*2]
add edi, esi
lea esi, [eax*4 - 0xc]
add ecx, 0x14
nop dword [eax + eax]
test ebx, ebx
je 0x52f88e
mov byte [edi], 0x20
dec ebx
mov eax, dword [ecx]
sub ebx, eax
jb 0x52f88e
inc edi
lea edx, [edi + eax]
mov dword [esp], edx
push eax
push dword [ecx - 8]
push edi
mov edi, ecx
call sub.msvcrt.dll_memcpy
mov ecx, edi
add esp, 0xc
mov edi, dword [esp]
add ecx, 0xc
add esi, 0xfffffff4
jne 0x52f0c0
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x48]
sub edx, ebx
mov ebx, dword [esp + 0x4c]
mov ecx, esi
call fcn.0050eba0
test edx, edx
mov dword [esp + 0x14], edx
js 0x52f8e1
mov edi, eax
je 0x52f14e
mov eax, dword [0x6f1130]
test eax, eax
jne 0x52f135
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x52f145
mov dword [0x6f1130], eax
push dword [esp + 0x14]
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
jne 0x52f153
mov ecx, dword [esp + 0x14]
jmp 0x52f998
mov eax, 1
push dword [esp + 0x14]
push edi
mov dword [esp + 0x38], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
test ebx, ebx
je 0x52f177
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x40]
test eax, eax
je 0x52f1af
mov esi, dword [esp + 0x38]
shl eax, 2
lea edi, [eax + eax*2]
add esi, 4
jmp 0x52f198
add esi, 0xc
add edi, 0xfffffff4
je 0x52f1af
cmp dword [esi], 0
je 0x52f190
push dword [esi - 4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x52f190
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x52f1d2
shl eax, 2
lea eax, [eax + eax*2]
test eax, eax
je 0x52f1d2
push dword [esp + 0x38]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x48]
push 7
push str.__childnet_use___user:__persistent:no
push dword [esp + 0x1c]
call fcn.0045fa60
add esp, 0xc
cmp dword [esp + 0x48], 1
jne 0x52f238
mov esi, dword [esp + 0x78]
cmp dword [esp + 0x6c], 0xffffffff
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
je 0x52f380
lea edx, [esp + 0x50]
lea ecx, [esp + 0x18]
push 0
push edi
push ebx
push eax
push esi
call fcn.00586840
add esp, 0x14
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
jmp 0x52f548
cmp byte [esp + 0x56], 0
mov dword [esp + 4], 0
jne 0x52f548
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov bl, byte [esp + 0x54]
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], ecx
jmp 0x52f282
mov ebx, dword [esp + 0x54]
add eax, esi
test ebx, 0xff0000
jne 0x52f548
mov dword [esp], ebx
xor bl, 1
test eax, eax
mov byte [esp + 0x54], bl
je 0x52f2a6
cmp edx, eax
jbe 0x52f2a0
cmp byte [ecx + eax], 0xbf
jg 0x52f2a6
jmp 0x52f983
jne 0x52f983
cmp eax, edx
je 0x52f52d
movzx ebx, byte [ecx + eax]
test bl, bl
js 0x52f300
cmp byte [esp], 0
jne 0x52f373
cmp ebx, 0x110000
je 0x52f53b
mov esi, 1
cmp ebx, 0x80
jb 0x52f270
mov esi, 2
cmp ebx, 0x800
jb 0x52f270
cmp ebx, 0x10000
mov esi, 4
sbb esi, 0
jmp 0x52f270
movzx esi, byte [ecx + eax + 1]
mov edi, ebx
and edi, 0x1f
and esi, 0x3f
cmp bl, 0xdf
jbe 0x52f34b
movzx ecx, byte [ecx + eax + 2]
shl esi, 6
and ecx, 0x3f
or ecx, esi
cmp bl, 0xf0
jb 0x52f35e
mov esi, dword [esp + 8]
and edi, 7
shl ecx, 6
shl edi, 0x12
movzx ebx, byte [esi + eax + 3]
and ebx, 0x3f
or ebx, ecx
mov ecx, esi
or ebx, edi
cmp byte [esp], 0
je 0x52f2c0
jmp 0x52f373
shl edi, 6
or edi, esi
mov ebx, edi
cmp byte [esp], 0
je 0x52f2c0
jmp 0x52f373
shl edi, 0xc
or ecx, edi
mov ebx, ecx
mov ecx, dword [esp + 8]
cmp byte [esp], 0
je 0x52f2c0
mov dword [esp + 4], 1
jmp 0x52f548
mov edx, dword [esp + 0x64]
mov dword [esp + 4], 0
lea ecx, [edx + edi - 1]
cmp ecx, eax
jae 0x52f548
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x90], esi
mov dword [esp + 0x10], edi
mov dword [esp], eax
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x60]
cmp dword [esp + 0x34], edi
mov dword [esp + 0xa4], ebx
mov ebx, edi
cmova ebx, dword [esp + 0x34]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x34]
dec ebx
mov dword [esp + 0x9c], ebx
jmp 0x52f407
mov edi, dword [esp + 0x10]
mov esi, ebx
add edx, edi
mov eax, dword [esp]
lea ecx, [edx + edi - 1]
cmp ecx, eax
jae 0x52f4e7
mov cl, byte [esi + ecx]
mov edi, 1
mov ebx, esi
xor esi, esi
mov eax, 1
shld esi, eax, cl
shl edi, cl
test cl, 0x20
mov eax, 0
cmovne esi, edi
cmovne edi, eax
and esi, dword [esp + 0xa8]
and edi, dword [esp + 0xac]
or edi, esi
je 0x52f3f0
mov esi, dword [esp + 0x34]
mov ecx, edx
lea edi, [ebx + edx]
mov eax, edx
neg ecx
nop word [eax + eax]
cmp dword [esp + 8], esi
je 0x52f47d
lea ebx, [edx + esi]
mov edx, dword [esp]
cmp ebx, edx
jae 0x52f860
mov edx, dword [esp + 4]
dec ecx
movzx ebx, byte [edx + esi]
mov edx, eax
cmp bl, byte [edi + esi]
lea esi, [esi + 1]
je 0x52f450
neg ecx
mov edx, ecx
jmp 0x52f4cd
mov ecx, dword [esp + 0x9c]
nop word cs:[eax + eax]
nop
cmp ecx, 0xffffffff
je 0x52f4ed
mov esi, dword [esp + 0x9c]
cmp esi, dword [esp + 0x10]
jae 0x52f872
lea esi, [edx + ecx]
mov edx, dword [esp]
cmp esi, edx
jae 0x52f87d
mov edx, dword [esp + 4]
movzx ebx, byte [edx + ecx]
mov edx, eax
cmp bl, byte [edi + ecx]
lea ecx, [ecx - 1]
je 0x52f490
add edx, dword [esp + 0xa4]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x10]
mov eax, dword [esp]
lea ecx, [edx + edi - 1]
cmp ecx, eax
jb 0x52f407
mov dword [esp + 0x64], edx
jmp 0x52f540
mov dword [esp + 0x64], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 4], 1
jmp 0x52f548
lea ecx, [esp + 0x38]
xor edx, edx
push dword [esp + 0x2c]
call fcn.004161f0
add esp, 4
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
cmp ebx, edi
mov dword [esp + 0x8c], ebx
jne 0x52ef1c
jmp 0x52efaf
cmp byte [esp], 0
mov dword [esp + 4], 1
jne 0x52f548
mov byte [esp + 0x56], 1
mov dword [esp + 4], 0
lea ecx, [esp + 0x18]
call fcn.005c1a50
mov esi, dword [esp + 0x18]
cmp esi, 1
jne 0x52f623
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x14], 0
mov edi, dword [esp + 0x20]
mov dword [esp], eax
je 0x52f581
push dword [esp + 0x30]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xc], 0
mov bl, 2
je 0x52f59e
push dword [esp + 0x94]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x88]
cmp dword [esp + 0xb4], 0
mov byte [eax + 0x30], bl
je 0x52f5c6
push dword [esp + 0xa0]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
test esi, esi
je 0x52f70f
cmp dword [esp + 0x2c], 0
je 0x52f6a6
mov eax, dword [esp + 0x8c]
lea esi, [eax + 4]
mov eax, dword [esp + 0xb0]
lea ebx, [eax*4 - 0xc]
jmp 0x52f60c
add esi, 0xc
add ebx, 0xfffffff4
je 0x52f6a6
cmp dword [esi], 0
je 0x52f600
push dword [esi - 4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x52f600
mov eax, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x1c]
mov dword [esp + 8], esi
mov dword [esp + 0x40], eax
lea eax, [esp + 0x38]
movsd qword [esp + 0x38], xmm0
push eax
call fcn.005e0110
add esp, 4
mov esi, edx
lea ecx, [esp + 0x48]
mov edx, eax
push esi
call fcn.005ed1f0
add esp, 4
xor eax, eax
cmp dword [esp + 0x48], 1
sete al
mov esi, dword [esp + eax*4 + 0x50]
test esi, esi
js 0x52f8e1
mov edi, dword [esp + 0x4c]
je 0x52f717
mov eax, dword [0x6f1130]
test eax, eax
jne 0x52f690
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x52f69f
mov dword [0x6f1130], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ebx, eax
test eax, eax
jne 0x52f71c
mov ecx, esi
jmp 0x52f998
mov eax, dword [esp + 0x98]
test eax, eax
je 0x52f6cf
shl eax, 2
lea eax, [eax + eax*2]
test eax, eax
je 0x52f6cf
push dword [esp + 0x8c]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
cmp byte [esp], 3
jne 0x52f70f
mov eax, dword [edi + 4]
push dword [edi]
call dword [eax]
add esp, 4
mov ecx, dword [edi + 4]
cmp dword [ecx + 4], 0
je 0x52f701
mov eax, dword [edi]
cmp dword [ecx + 8], 9
jb 0x52f6f3
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push edi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, 1
push esi
push edi
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, ebx
mov edx, esi
call fcn.0050eba0
test edx, edx
js 0x52f8e1
mov ecx, eax
mov edi, edx
je 0x52f76f
mov eax, dword [0x6f1130]
mov dword [esp], ecx
test eax, eax
jne 0x52f758
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x52f768
mov dword [0x6f1130], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ecx, dword [esp]
test eax, eax
jne 0x52f774
mov ecx, edi
jmp 0x52f998
mov eax, 1
push edi
push ecx
mov dword [esp + 8], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
test esi, esi
je 0x52f795
push ebx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x48], 0
je 0x52f7b4
cmp dword [esp + 0x50], 0
je 0x52f7b4
push dword [esp + 0x4c]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3c], 0
mov esi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x98]
je 0x52f7da
push dword [esp + 0x38]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0xc]
cmp dword [esp + 4], 1
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [eax + 0x10], ebx
sete bl
mov dword [eax + 0x14], esi
mov esi, dword [esp + 0x14]
mov dword [eax + 0x18], edx
mov edx, dword [esp]
mov dword [eax + 0x1c], esi
mov dword [eax + 0x20], esi
mov esi, dword [esp + 8]
mov dword [eax + 0x24], edx
mov dword [eax + 0x28], edi
mov dword [eax + 0x2c], edi
cmp dword [esp + 0xb4], 0
mov byte [eax + 0x30], bl
jne 0x52f5b2
jmp 0x52f5c6
mov esi, ecx
lea ecx, [esp + 0x48]
xor edx, edx
push ebx
call fcn.005f2340
mov ecx, esi
add esp, 4
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x50]
jmp 0x52f08a
mov ecx, dword [esp + 0x34]
add ecx, eax
cmp edx, ecx
cmova ecx, edx
push 0x6dd4b0
jmp 0x52f884
mov edx, dword [esp + 0x10]
push 0x6dd4c0
jmp 0x52f884
mov ecx, esi
push 0x6dd4d0
call fcn.0045a150
add esp, 4
ud2
mov ecx, 0x6d3761
mov edx, 0x23
push 0x6d3784
call fcn.0045aec0
add esp, 4
ud2
mov eax, dword [esp]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x50], eax
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
push 0x6d4300
push 0x6d433c
lea eax, [esp + 0x50]
push eax
call fcn.0045d480
add esp, 0xc
ud2
call fcn.0040a620
ud2
mov edi, edx
sub dword [esp + 0xc], edi
jne 0x52f929
cmp dword [esp + 0x10], 0
je 0x52f916
mov eax, dword [esp + 0x10]
shl eax, 2
lea eax, [eax + eax*2]
test eax, eax
je 0x52f916
push dword [esp + 0x30]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
xor ecx, ecx
xor edx, edx
push 0x6853a0
call fcn.0040b3d0
add esp, 4
ud2
mov eax, dword [esp + 0xc]
add edi, 4
sar eax, 2
imul eax, eax, 0xaaaaaaab
shl eax, 2
lea esi, [eax + eax*2]
jmp 0x52f958
add edi, 0xc
add esi, 0xfffffff4
je 0x52f8f0
cmp dword [edi], 0
je 0x52f950
push dword [edi - 4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x52f950
mov eax, dword [esp + 4]
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], eax
mov eax, dword [esp]
jmp 0x52f8ba
push 0x6dd4e8
push edx
push eax
call fcn.0045d720
add esp, 0xc
ud2
mov ecx, dword [esp + 0xc]
mov edx, 1
call fcn.0040a640
ud2