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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf68
mov edi, dword [edx + 0x40]
mov esi, dword [edx + 0x5c]
mov dword [esp + 0x48], ecx
xor ecx, ecx
mov ebx, edx
mov dword [esp + 4], edi
sub edi, esi
setae cl
mov edx, 0x6c3854
call fcn.0048e5e9
cmp edi, dword [ebx + 0x28]
mov ecx, ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x10], ebx
jne 0x562935
mov edx, dword [esp + 4]
cmp edx, esi
jbe 0x563950
mov edx, dword [ecx + 0x3c]
imul eax, esi, 0x260
cmp dword [edx + eax], 3
je 0x562935
add edx, eax
lea ebx, [esp + 0x170]
mov dword [esp + 0xc], edx
mov ecx, ebx
call fcn.005608e5
mov eax, dword [ebx]
xor eax, 3
or eax, dword [ebx + 4]
jne 0x562862
push 8
pop eax
xor edi, edi
mov dword [esp + 0x1c], 0
jmp 0x562909
call fcn.005609f6
push 0x1a
pop ecx
mov edi, eax
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x3d0]
mov dword [esp + 4], eax
mov dword [ecx], 4
mov dword [ecx + 4], eax
mov dword [ecx + 8], 1
xor edi, edi
inc edi
push 0x68
pop esi
mov edx, dword [esp + 0xc]
mov ecx, ebx
call fcn.005608e5
mov eax, dword [esp + 0x170]
xor eax, 3
or eax, dword [esp + 0x174]
je 0x5628ee
cmp edi, dword [esp + 0x3d0]
mov eax, dword [esp + 4]
jne 0x5628cf
lea ecx, [esp + 0x3d0]
call fcn.00560a2e
mov eax, dword [esp + 0x3d4]
mov dword [esp + 4], eax
add eax, esi
push 0x68
push ebx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
inc edi
add esi, 0x68
mov dword [esp + 0x3d8], edi
jmp 0x562891
lea ecx, [esp + 0x170]
call fcn.00560a19
mov eax, dword [esp + 0x3d0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 4]
imul edi, edi, 0x68
add edi, eax
mov esi, dword [esp + 0xc]
mov ebx, eax
mov ecx, esi
call fcn.00560e2d
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esi], 3
mov dword [esi + 4], ebx
mov dword [esi + 8], eax
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], edi
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
test edi, edi
je 0x562a72
js 0x5639ad
mov al, byte [0x706188]
xor edx, edx
mov ecx, edi
inc edx
call fcn.00425680
test eax, eax
je 0x5639b2
push edi
push esi
mov dword [esp + 0x1c], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov al, byte [0x706188]
xor edx, edx
mov ecx, edi
inc edx
mov dword [esp + 8], edx
call fcn.00425680
test eax, eax
je 0x5639bc
mov ecx, esi
mov esi, eax
push edi
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0x170]
mov dword [ecx], edi
mov dword [ecx + 4], esi
mov dword [ecx + 8], edi
mov byte [ecx + 0xc], 0
mov edx, str.fatal_runtime_error:_I_O_error:_operation_failed_to_complete_synchronously_na
push 1
call fcn.00543c20
pop eax
lea ecx, [esp + 0x170]
mov esi, edi
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
push dword [ecx + 8]
call fcn.00520d80
pop eax
mov eax, dword [esp + 0x170]
mov ebx, dword [esp + 0x174]
mov edi, dword [esp + 0x178]
cmp eax, 0x80000000
je 0x562a32
lea edx, [esp + 0x170]
mov dword [edx], eax
mov dword [edx + 4], ebx
mov dword [edx + 8], edi
lea ecx, [esp + 0x630]
push 1
call fcn.00540840
pop eax
mov eax, dword [esp + 0x630]
mov ebx, dword [esp + 0x634]
cmp eax, 0x80000000
jne 0x562cb8
mov edi, dword [esp + 0x638]
mov dword [esp + 4], 0
mov eax, ebx
mov dword [esp + 0x24], ebx
shr ebx, 8
cmp dword [esp + 0x18], 0
mov esi, dword [esp + 0x14]
je 0x562a5a
mov ecx, dword [esp + 0x20]
xor edx, edx
inc edx
call fcn.004256e0
xor edx, edx
mov ecx, esi
inc edx
call fcn.004256e0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], edi
jmp 0x562a83
mov dword [esp + 4], 0
push 3
pop eax
mov dword [esp + 0xc], eax
xor eax, eax
shl ebx, 8
movzx esi, al
lea edi, [esp + 0x17c]
or esi, ebx
mov ebx, dword [ecx + 0x60]
mov edx, dword [ebp + 8]
mov ecx, edi
push dword [ebp + 0xc]
call fcn.00548a10
pop eax
mov eax, dword [esp + 0xc]
mov dword [edi - 4], eax
mov dword [edi + 0x18], ebx
movsd xmm1, qword [edi + 0xc]
movsd xmm0, qword [edi + 4]
movsd xmm2, qword [edi - 4]
movsd qword [esp + 0x78], xmm1
movsd xmm1, qword [edi + 0x14]
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x68], xmm2
movsd qword [esp + 0x80], xmm1
push 2
pop eax
lea edi, [esp + 0x65c]
movsd xmm1, qword [esp + 0x70]
movsd xmm0, qword [esp + 0x68]
movsd xmm2, qword [esp + 0x78]
mov dword [edi + 0x230], ebx
mov dword [edi - 0x2c], eax
mov eax, dword [esp + 4]
mov dword [edi - 0x24], esi
mov dword [edi - 0x28], eax
movsd qword [edi - 0x18], xmm1
movsd xmm1, qword [esp + 0x80]
movsd qword [edi - 0x20], xmm0
movsd qword [edi - 0x10], xmm2
movsd qword [edi - 8], xmm1
lea eax, [esp + 0xd3c]
push 0x228
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov dword [edi + 0x228], eax
mov dword [edi + 0x22c], ecx
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x20], 0
je 0x562f08
lea eax, [ecx + 0x20]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x630]
lea esi, [esp + 0x3d0]
push 0x260
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esi]
cmp eax, 3
jne 0x562bdc
mov eax, dword [esp + 0x3dc]
cmp eax, dword [esp + 0x3e0]
je 0x562ebd
lea ecx, [eax + 0x68]
lea esi, [eax + 0xc]
mov dword [esp + 0x3dc], ecx
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 4]
mov edx, dword [eax]
mov dword [esp + 4], ecx
push 9
pop ecx
lea edi, [esp + 0xa0]
add eax, 0x30
rep movsd dword es:[edi], dword [esi]
push 0xe
pop ecx
lea edi, [esp + 0x108]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, edx
jmp 0x562eb0
cmp eax, 2
jne 0x562c1d
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x3d4], 2
cmp eax, 2
mov dword [esp + 4], eax
je 0x562ebd
lea esi, [esp + 0x3d8]
push 9
pop ecx
lea edi, [esp + 0xa0]
xor ebx, ebx
rep movsd dword es:[edi], dword [esi]
push 2
pop edi
jmp 0x5630e8
lea edx, [esp + 0x3d0]
mov esi, dword [edx + 0x25c]
lea edi, [esp + 0x170]
mov ecx, edi
call fcn.00543940
cmp dword [edi], 0
je 0x562d55
mov edx, dword [esp + 0x174]
mov ecx, dword [esp + 0x178]
mov eax, dword [esp + 0x17c]
test edx, edx
je 0x562e5a
lea ebx, [esp + 0xaf0]
lea edi, [esp + 0x180]
mov dword [ebx - 0xc], edx
mov dword [ebx - 8], ecx
mov dword [ebx - 4], eax
push 0x248
push edi
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
inc esi
lea ebx, [esp + 0x890]
lea edi, [esp + 0xae4]
mov edx, esi
mov ecx, ebx
push edi
call fcn.00560b4e
pop eax
mov ecx, edi
call fcn.00453f93
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov dword [esp + 4], ecx
mov ebx, edx
jmp 0x562e88
mov dword [esp + 0x2c], eax
push 0x250
push 0
lea edi, [esp + 0x178]
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
push edi
push ebx
call sub.KERNEL32.DLL_FindFirstFileW
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebx
je 0x562d5f
mov dword [esp + 4], 0
mov al, byte [0x706188]
push 0x18
pop ecx
push 4
pop edx
call fcn.00425680
test eax, eax
je 0x5639ec
mov ecx, eax
xor eax, eax
inc eax
mov dword [esp + 0x30], ecx
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], esi
and dword [ecx + 0x14], 0
lea eax, [esp + 0x178]
mov ebx, dword [eax - 8]
mov ecx, dword [eax - 4]
mov edi, ebx
shrd ebx, ecx, 8
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x3d0]
push 0x248
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x562d79
xor ebx, ebx
push 3
pop edi
jmp 0x562eb0
mov dword [esp + 4], 0
push 2
pop eax
mov dword [esp + 8], eax
xor edi, edi
call sub.KERNEL32.DLL_GetLastError
mov dword [esp + 0xc], eax
cmp dword [esp + 0x2c], 0
je 0x562d8c
push 2
pop edx
mov ecx, dword [esp + 0x24]
call fcn.004256e0
cmp dword [esp + 0x18], 0
mov esi, dword [esp + 0x14]
je 0x562da3
mov ecx, dword [esp + 0x20]
xor edx, edx
inc edx
call fcn.004256e0
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
jne 0x562db9
xor edx, edx
mov ecx, esi
inc edx
call fcn.004256e0
xor ecx, ecx
dec ecx
cmp dword [esp + 8], 2
jne 0x562dcb
mov ecx, dword [esp + 0x10]
mov eax, edi
jmp 0x562a83
lea eax, [esp + 0x3d0]
push 0x248
push eax
lea eax, [esp + 0x178]
push eax
mov dword [esp + 0x28], ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, edi
shl ebx, 8
movzx eax, al
or eax, ebx
mov dword [esp + 4], eax
lea eax, [esp + 0x190]
movsd xmm1, qword [eax - 0x18]
movsd xmm0, qword [eax - 0x20]
movsd xmm2, qword [eax - 0x10]
movsd qword [esp + 0x70], xmm1
movsd xmm1, qword [eax - 8]
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x78], xmm2
movsd qword [esp + 0x80], xmm1
lea ecx, [esp + 0xd3c]
push 0x228
push eax
push ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x14]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov ebx, dword [ecx + 0x60]
jmp 0x562adf
inc esi
mov dword [esp + 0x89c], ecx
mov dword [esp + 0x8a0], eax
mov dword [esp + 0x8a4], 0x80000000
mov dword [esp + 4], 0
mov dword [esp + 0x8bc], esi
push 2
pop eax
xor ebx, ebx
lea esi, [esp + 0x89c]
push 9
pop ecx
lea edi, [esp + 0xa0]
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x8c0]
push 0xe
pop ecx
lea edi, [esp + 0x108]
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov eax, edi
xor eax, 3
or eax, ebx
jne 0x5630e8
push 8
pop edi
lea esi, [esp + 0x3d0]
mov ecx, esi
call fcn.00560e2d
lea eax, [esp + 0x4c]
xor edx, edx
mov dword [esi], eax
xor esi, esi
mov ecx, dword [esp + 0x10]
imul eax, edx, 0x68
mov dword [esp + 0x630], 3
mov dword [esp + 0x634], edi
mov dword [esp + 0x638], esi
mov dword [esp + 0x63c], edi
add eax, edi
mov dword [esp + 0x640], eax
cmp byte [ecx + 0x34], 0
je 0x563073
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
lea esi, [esp + 0x3d0]
mov ecx, esi
mov edx, ebx
push edi
call fcn.0056164a
pop eax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, ecx
xor eax, 2
or eax, edx
jne 0x562f75
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x3d8]
mov ecx, dword [esp + 0x3dc]
mov edx, dword [edx + 0x60]
and dword [esi], 0
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
mov dword [esi + 0xc], 0x80000000
mov dword [esi + 0x24], edx
lea ecx, [esp + 0x630]
call fcn.00560e2d
jmp 0x5630e0
mov esi, dword [esp + 0x3dc]
movsd xmm0, qword [esp + 0x3e0]
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
mov dword [esp + 0x1c], esi
lea esi, [esp + 0x190]
mov dword [esp + 0x14], eax
movsd qword [esi - 0x10], xmm0
movsd xmm0, qword [esp + 0x3e8]
movsd qword [esi - 8], xmm0
mov edx, ebx
mov ecx, esi
push edi
call fcn.00548a10
pop eax
mov ecx, dword [esp + 0x10]
movsd xmm0, qword [esi - 8]
mov eax, dword [esi + 8]
mov ebx, dword [esi - 0x10]
mov edi, dword [esi - 0xc]
mov edx, dword [ecx + 0x4c]
movsd qword [esp + 0x88], xmm0
movsd xmm0, qword [esi]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x98], eax
cmp edx, dword [ecx + 0x44]
movsd qword [esp + 0x90], xmm0
jne 0x56300e
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x44]
call fcn.005615bf
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x4c]
mov ecx, dword [esp + 0x10]
imul eax, edx, 0x30
mov edx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x48]
mov dword [ecx + eax + 4], edx
mov edx, dword [esp + 4]
mov dword [ecx + eax], edx
mov edx, dword [esp + 0x14]
mov dword [ecx + eax + 8], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx + eax + 0x10], ebx
mov dword [ecx + eax + 0xc], edx
mov dword [ecx + eax + 0x14], edi
movsd xmm0, qword [esp + 0x88]
movsd xmm1, qword [esp + 0x90]
movsd qword [ecx + eax + 0x18], xmm0
movsd qword [ecx + eax + 0x20], xmm1
mov edx, dword [esp + 0x98]
mov dword [ecx + eax + 0x28], edx
mov dword [ecx + eax + 0x2c], esi
mov ecx, dword [esp + 0x10]
inc dword [ecx + 0x4c]
mov edx, dword [ecx + 0x40]
cmp edx, dword [ecx + 0x38]
jne 0x56308e
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x38]
call fcn.005614a3
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x40]
imul eax, edx, 0x260
add eax, dword [ecx + 0x3c]
mov ecx, 0x260
lea edx, [esp + 0x630]
push ecx
push edx
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x54]
inc dword [eax + 0x40]
cmp ecx, dword [eax + 0x28]
jne 0x5630d6
mov esi, dword [eax + 0x5c]
xor ecx, ecx
mov edi, eax
inc esi
setne cl
mov edx, 0x6c3874
call fcn.0048e5e9
mov dword [edi + 0x5c], esi
mov eax, dword [esp + 0x48]
mov dword [eax], 2
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, ebx
push 0x68
pop ebx
call fcn.005609f6
mov ecx, dword [esp + 4]
mov dword [eax], edi
lea edi, [eax + 0xc]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
push 9
pop ecx
lea edx, [esp + 0xa0]
mov esi, edx
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x30]
push 0xe
pop ecx
lea esi, [esp + 0x108]
rep movsd dword es:[edi], dword [esi]
mov edi, edx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x28], eax
mov dword [ecx], 4
mov dword [ecx + 4], eax
mov dword [ecx + 8], 1
lea ecx, [esp + 0x170]
push 0x260
lea eax, [esp + 0x3d4]
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor edx, edx
inc edx
mov eax, dword [esp + 0x170]
mov dword [esp + 8], edx
cmp eax, 3
jne 0x5631ac
mov esi, dword [esp + 0x17c]
cmp esi, dword [esp + 0x180]
je 0x563357
lea eax, [esi + 0x68]
mov dword [esp + 0x17c], eax
push 0x1a
pop ecx
lea edi, [esp + 0xa0]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
jmp 0x5632aa
cmp eax, 2
jne 0x5631d5
mov ecx, dword [esp + 0x174]
xor eax, eax
mov dword [esp + 0x174], 2
cmp ecx, 2
jne 0x563278
push 3
jmp 0x56329b
mov esi, dword [esp + 0x3cc]
lea ecx, [esp + 0xae4]
lea edx, [esp + 0x170]
call fcn.00543940
cmp dword [esp + 0xae4], 0
je 0x5632ef
mov edx, dword [esp + 0xae8]
mov ecx, dword [esp + 0xaec]
mov eax, dword [esp + 0xaf0]
test edx, edx
je 0x56330b
mov dword [esp + 0x890], edx
mov dword [esp + 0x894], ecx
mov dword [esp + 0x898], eax
push 0x248
lea eax, [esp + 0xaf8]
push eax
lea eax, [esp + 0x8a4]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
inc esi
lea edi, [esp + 0x108]
mov edx, esi
lea esi, [esp + 0x890]
mov ecx, edi
push esi
call fcn.00560b4e
pop eax
mov ecx, esi
mov esi, edi
call fcn.00453f93
mov edx, dword [esp + 8]
jmp 0x563186
mov dword [esp + 0xa8], ecx
push 9
pop ecx
lea edi, [esp + 0xac]
lea esi, [esp + 0x178]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0xa0]
push 2
pop ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
xor ecx, 3
or ecx, eax
je 0x56336a
cmp edx, dword [esp + 0x5c]
jne 0x5632cc
lea ecx, [esp + 0x5c]
call fcn.00560a2e
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add eax, ebx
push 0x68
push edi
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov edx, dword [esp + 8]
add ebx, 0x68
inc edx
mov dword [esp + 0x64], edx
jmp 0x563158
mov edx, dword [esp + 8]
and dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 3
jmp 0x563199
inc esi
mov edx, dword [esp + 8]
and dword [esp + 0x110], 0
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], 0x80000000
mov dword [esp + 0x134], esi
and dword [esp + 0x10c], 0
lea esi, [esp + 0x108]
mov dword [esp + 0x108], 2
jmp 0x563186
and dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 3
lea ecx, [esp + 0xa0]
call fcn.00560a19
lea ecx, [esp + 0x170]
call fcn.00560e2d
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x5c]
lea eax, [esp + 0x4c]
mov dword [esp + 0x3d0], eax
cmp edx, 0x15
jae 0x5633c8
mov edi, dword [esp + 0x28]
cmp edx, 1
jbe 0x562ed8
mov edx, dword [esp + 8]
lea eax, [esp + 0x3d0]
mov ecx, edi
push eax
push 1
call fcn.00561353
mov edx, dword [esp + 0x10]
add esp, 8
jmp 0x562ed8
mov eax, edx
mov dword [esp + 0x50], esi
shr eax, 1
imul ecx, eax, 0x68
mov al, byte [0x706188]
push 8
pop edx
call fcn.00425680
mov esi, dword [esp + 0x28]
test eax, eax
mov dword [esp + 0x14], eax
je 0x5639c8
push 0x10
pop ecx
mov dword [esp + 0x2c], ecx
call fcn.00450a62
test eax, eax
je 0x5639da
lea edx, [esi + 0x68]
mov dword [esp + 0x28], esi
mov edi, eax
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 8]
mov eax, ebx
sub eax, ecx
jbe 0x563907
cmp eax, 2
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], ecx
jae 0x56343b
mov edx, ebx
jmp 0x5635c8
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], edi
imul edi, ecx, 0x68
add eax, edi
lea edx, [eax + 0x68]
lea ecx, [esp + 0x3d0]
push eax
call fcn.0056145d
pop ecx
test al, al
mov byte [esp + 4], al
je 0x563490
add edi, dword [esp + 0x44]
push 2
pop ebx
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x5634c5
lea esi, [edi + 0x68]
lea ecx, [esp + 0x3d0]
mov edx, esi
push edi
call fcn.0056145d
pop ecx
test al, al
je 0x5634bf
mov edi, esi
mov esi, dword [esp + 0x20]
inc ebx
jmp 0x563468
add edi, dword [esp + 0x44]
push 2
pop ebx
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x5634c5
lea esi, [edi + 0x68]
lea ecx, [esp + 0x3d0]
mov edx, esi
push edi
call fcn.0056145d
pop ecx
test al, al
jne 0x5634bf
mov edi, esi
mov esi, dword [esp + 0x20]
inc ebx
jmp 0x563497
mov esi, dword [esp + 0x20]
mov eax, ebx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], eax
cmp byte [esp + 4], 0
mov edi, dword [esp + 0x38]
lea edx, [eax + ecx]
mov eax, dword [esp + 0x28]
je 0x5635b6
mov dword [esp + 0x34], edx
push 0x6c3584
push dword [esp + 0xc]
push eax
call fcn.00561322
add esp, 0xc
mov ebx, edx
imul ecx, edx, 0x68
shr ebx, 1
add ecx, eax
mov edx, ebx
neg edx
imul esi, edx, 0x68
add esi, ecx
xor ecx, ecx
mov edx, ebx
push 0x6c34f4
push ebx
push eax
call fcn.00561322
add esp, 0xc
mov dword [esp + 4], eax
mov dword [esp + 0x40], edx
xor ecx, ecx
mov edx, ebx
push 0x6c3504
push ebx
push esi
call fcn.00561322
add esp, 0xc
imul ecx, ebx, 0x68
dec ebx
mov dword [esp + 0x24], edx
lea eax, [eax + ecx - 0x68]
mov ecx, ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x20]
cmp ecx, 0xffffffff
je 0x5635bc
sub ebx, 1
jb 0x563932
cmp ecx, dword [esp + 0x24]
jae 0x563942
push 0x1a
pop eax
mov edx, dword [esp + 4]
mov dword [esp + 0x1c], ecx
mov ecx, eax
lea edi, [esp + 0x170]
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0xc]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
push 0x1a
pop ecx
mov edi, eax
lea esi, [esp + 0x170]
add edx, 0x68
add eax, 0xffffff98
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x38]
dec ecx
jmp 0x56354f
mov ebx, dword [esp + 8]
jmp 0x5635c8
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
cmp edx, ecx
jb 0x563989
cmp edx, ebx
ja 0x563989
jae 0x563632
mov eax, dword [esp + 0x18]
cmp eax, 9
ja 0x563632
add ecx, 0xa
cmp ecx, ebx
cmovae ecx, ebx
cmp eax, 1
mov ebx, ecx
adc eax, 0
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x30]
mov edx, ebx
push 0x6c3650
push dword [esp + 0xc]
push dword [esp + 0x30]
call fcn.00561322
add esp, 0xc
mov ecx, eax
lea eax, [esp + 0x3d0]
push eax
push dword [esp + 0x1c]
call fcn.00561353
mov edx, ebx
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x10]
add esp, 8
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], edx
cmp esi, eax
jne 0x563684
lea ecx, [eax + eax]
mov dword [esp + 0x3c], ecx
mov ebx, eax
call fcn.00450a62
test eax, eax
je 0x56399b
mov esi, eax
mov eax, ebx
shl eax, 3
push eax
push edi
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, edi
push 4
pop edx
call fcn.004256e0
mov edi, esi
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp 0x563688
mov dword [esp + 0x3c], eax
mov eax, edx
mov dword [esp + 0x38], edi
sub eax, ecx
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], ecx
inc esi
cmp esi, 2
jb 0x5638e5
mov ecx, esi
mov eax, dword [edi + esi*8 - 8]
mov ecx, dword [edi + esi*8 - 4]
add ecx, eax
cmp ecx, ebx
je 0x5636ee
mov edx, dword [edi + esi*8 - 0x10]
cmp edx, eax
jbe 0x5636ee
cmp esi, 2
jbe 0x5638f6
lea ecx, [esi - 3]
mov ebx, esi
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + esi*8 - 0x18]
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x563706
cmp ebx, 3
mov esi, ebx
jbe 0x5638f6
add edx, ecx
cmp dword [edi + esi*8 - 0x20], edx
jbe 0x563708
jmp 0x5638f6
mov ebx, edi
cmp esi, 3
jb 0x563712
lea ecx, [esi - 3]
mov edi, ebx
mov edx, esi
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx + esi*8 - 0x18]
jmp 0x563708
mov esi, ebx
mov ebx, edi
mov edi, dword [esp + 0x24]
cmp ecx, eax
jb 0x563715
lea edi, [esi - 2]
mov edx, esi
mov ecx, ebx
push 0x6c3594
push edi
call fcn.00425c0e
pop ecx
pop edx
mov ecx, dword [eax]
mov edx, esi
mov esi, dword [eax + 4]
lea eax, [edi + 1]
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], ecx
mov ecx, ebx
mov dword [esp + 0x20], edx
push 0x6c35a4
mov dword [esp + 0x30], eax
push eax
call fcn.00425c0e
pop ecx
pop edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add edx, ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x40], esi
mov ecx, esi
push 0x6c35b4
push dword [esp + 0xc]
push dword [esp + 0x30]
call fcn.00561322
add esp, 0xc
mov ecx, dword [esp + 0x30]
imul edi, edx, 0x68
mov dword [esp + 0xc], eax
imul esi, ecx, 0x68
sub edx, ecx
lea ebx, [eax + esi]
cmp edx, ecx
jae 0x563805
imul esi, edx, 0x68
push esi
push ebx
push dword [esp + 0x1c]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xc]
add esi, dword [esp + 0x14]
lea edi, [eax + edi - 0x68]
mov dword [esp + 4], esi
cmp ebx, dword [esp + 0xc]
mov eax, ebx
jbe 0x563877
mov esi, dword [esp + 4]
cmp esi, dword [esp + 0x14]
jbe 0x563877
mov ebx, eax
lea edx, [esi - 0x68]
add eax, 0xffffff98
lea ecx, [esp + 0x3d0]
push eax
call fcn.0056145d
pop ecx
movzx ecx, al
imul edx, ecx, 0x68
neg ecx
imul ecx, ecx, 0x68
lea esi, [esi + edx - 0x68]
add ebx, ecx
test al, al
mov dword [esp + 4], esi
cmovne esi, ebx
push 0x1a
pop ecx
mov eax, edi
rep movsd dword es:[edi], dword [esi]
add eax, 0xffffff98
mov edi, eax
jmp 0x5637ad
add edi, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], edi
push esi
push eax
mov ebx, dword [esp + 0x1c]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, ebx
mov dword [esp + 4], esi
cmp ebx, dword [esp + 4]
mov esi, ebx
jae 0x563883
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 0x18]
jae 0x563883
mov ebx, esi
lea ecx, [esp + 0x3d0]
mov edx, edi
push esi
call fcn.0056145d
pop ecx
test al, al
movzx ecx, al
cmovne esi, edi
xor al, 1
imul ecx, ecx, 0x68
movzx eax, al
add edi, ecx
imul eax, eax, 0x68
mov dword [esp + 0x1c], edi
add ebx, eax
push 0x1a
pop ecx
mov eax, dword [esp + 0xc]
mov edi, eax
add eax, 0x68
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xc], eax
jmp 0x563824
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x38]
mov ebx, eax
jmp 0x56388b
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 4]
sub eax, esi
push eax
push esi
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
cmp eax, dword [esp + 0x2c]
jbe 0x56395c
mov ecx, dword [esp + 0x58]
mov esi, eax
lea eax, [edi + edx*8]
add ecx, dword [esp + 0x30]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 0xc], ecx
lea ecx, [edi + edx*8 + 8]
not edx
add edx, esi
shl edx, 3
push edx
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ebx, dword [esp + 8]
dec esi
jmp 0x563698
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
jmp 0x563419
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
jmp 0x563415
push 4
pop edx
mov ecx, edi
call fcn.004256e0
push 8
pop edx
mov ecx, dword [esp + 0x14]
call fcn.004256e0
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x28]
jmp 0x562edc
mov ecx, dword [esp + 0x40]
mov edx, ecx
push 0x6c3514
call fcn.0043a050
mov edx, dword [esp + 0x24]
push 0x6c3524
call fcn.0043a050
mov ecx, esi
push 0x6c3864
call fcn.0043a050
lea ecx, [esp + 0x170]
mov dword [ecx], 0x6c3460
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x6c4590
and dword [ecx + 0xc], 0
mov edx, 0x6c35c4
call fcn.00439fc0
push 0x2c
pop edx
mov ecx, str.assertion_failed:_end___start__end___len45l
push 0x6c3640
call fcn.0043a9e0
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valueC:Users_admin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.6_srcwin.rs
push 0x6c35f4
call fcn.0043a9e0
call fcn.004341f0
xor ecx, ecx
mov edx, edi
inc ecx
call fcn.00434230
xor ecx, ecx
mov edx, edi
inc ecx
call fcn.00434230
jmp 0x5639f7
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valueC:Users_admin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.6_srcwin.rs
push 0x6c35d4
call fcn.0043a9e0
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valueC:Users_admin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.6_srcwin.rs
push 0x6c35e4
call fcn.0043a9e0
push 4
pop ecx
push 0x18
pop edx
call fcn.00434230
ud2