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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc20
mov eax, dword [esp + 0xc34]
mov ebp, ecx
lea ecx, [esp + 0x1b4]
mov ebx, edx
call 0x615ae9
pop edi
mov dword [ecx], edx
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
call fcn.00615a85
xor esi, esi
inc esi
cmp al, 3
movzx eax, al
cmove eax, esi
je 0x616ca5
mov dword [esp + 0xc4], edi
mov edi, dword [esp + 0xc38]
cmp al, 2
jne 0x615ba0
lea ecx, [esp + 0x1b4]
add dword [ecx + 8], 4
call fcn.0060e40e
test eax, eax
je 0x616ca3
lea ecx, [esp + 0x1b4]
call fcn.00613255
test eax, eax
je 0x616ca3
mov ecx, eax
push edi
call fcn.00613229
pop ecx
test eax, eax
je 0x616cba
xor eax, eax
cmp edx, dword [esp + 0x1bc]
jb 0x616ca5
cmp edx, dword [esp + 0x1b8]
ja 0x616ca5
lea ecx, [esp + 0x1b4]
mov dword [ecx + 8], edx
call fcn.00615a85
cmp al, 3
movzx eax, al
cmove eax, esi
je 0x616ca5
cmp al, 2
mov al, 1
jne 0x615baa
jmp 0x616ca5
mov al, 2
test edi, edi
jne 0x616ca5
lea ecx, [esp + 0x1b4]
call fcn.0060e3bf
test ax, ax
je 0x616ca3
mov ecx, dword [esp + 0x1bc]
movzx esi, dx
xor eax, eax
shl esi, 4
mov dword [esp + 0x174], esi
add ecx, 6
mov dword [esp + 0x38], ecx
add ecx, esi
jb 0x616ca5
cmp ecx, dword [esp + 0x1b8]
ja 0x616ca5
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x1b4]
xor edi, edi
mov word [esp + 0xc0], dx
mov dword [esp + 0x150], ebx
mov dword [esp + 0x74], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 4], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x170], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x16c], 0
mov dword [esp + 0x168], str.dest_is_out_of_bounds
mov dword [esp + 0x164], 0
mov dword [esp + 0x160], str.dest_is_out_of_bounds
mov dword [esp + 0x15c], 0
mov dword [esp + 0x158], str.dest_is_out_of_bounds
add eax, dword [ecx]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc34]
shr eax, 8
mov dword [esp + 0x180], eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 4]
mov edx, dword [esp]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
cmp di, word [esp + 0xc0]
jae 0x616cbe
movzx eax, di
shl eax, 4
lea ecx, [eax + 0x10]
cmp ecx, dword [esp + 0x174]
ja 0x616cbe
add eax, dword [esp + 0x38]
lea esi, [esp + 0x1b4]
mov ecx, esi
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], 0x10
and dword [esp + 0x1bc], 0
call fcn.0060e40e
test eax, eax
je 0x616cbe
mov ecx, esi
mov ebx, edx
call fcn.0060e40e
test eax, eax
je 0x616cbe
mov ecx, esi
call fcn.0060e40e
test eax, eax
je 0x616cbe
mov ecx, esi
mov esi, edx
call fcn.0060e40e
test eax, eax
je 0x616cbe
inc edi
add edx, esi
jb 0x615dda
mov eax, dword [esp + 0x150]
cmp edx, dword [esp + 0xc34]
bswap ebx
lea ecx, [eax + esi]
mov eax, 0
mov dword [esp + 0x34], ecx
cmova ecx, eax
mov dword [esp + 0x28], ecx
movzx ecx, bl
add ecx, 0xffffffbd
mov eax, ecx
mov eax, dword [esp + 0x14]
cmp ecx, 0x33
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 8], eax
ja 0x615dbb
mov ecx, edx
mov eax, ebx
sub ecx, esi
shr eax, 0x18
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x20], ecx
mov ecx, ebx
mov dword [esp + 0x24], eax
movzx eax, al
shr ecx, 0x10
mov dword [esp + 0xc8], eax
movzx eax, cl
mov dword [esp + 0x2c], ecx
mov ecx, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x14]
mov esi, dword [esi*4 + 0x6171cc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
add esi, dword [esp + 0xc4]
mov dword [esp], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], esi
movzx esi, bh
mov dword [esp + 0x30], esi
mov dword [esp + 8], eax
mov eax, edi
mov edi, ecx
mov dword [esp + 4], eax
jmp dword [esp + 0x3c]
xor eax, eax
mov byte [ebp + 4], al
mov dword [ebp], 3
add esp, 0xc20
pop esi
pop edi
pop ebx
pop ebp
ret
mov al, 2
jmp 0x616ca5
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x15c]
lea edx, [esp + 0x66c]
mov esi, dword [esp + 0x160]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x164]
mov dword [edx + 8], esi
mov esi, dword [esp + 0x168]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x16c]
mov dword [edx + 0x10], esi
mov esi, dword [esp + 0x78]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x108]
mov dword [edx + 0x18], esi
mov esi, dword [esp + 0x7c]
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x10c]
mov dword [edx + 0x20], esi
mov esi, dword [esp + 0x40]
mov dword [edx + 0x24], ecx
mov ecx, dword [esp + 0xd0]
mov dword [edx + 0x28], esi
mov esi, dword [esp + 0x44]
mov dword [edx + 0x2c], ecx
mov ecx, dword [esp + 0xd4]
mov dword [edx + 0x30], esi
mov esi, dword [esp + 0x154]
mov dword [edx + 0x34], ecx
mov ecx, dword [esp + 0x178]
mov dword [edx + 0x38], esi
mov esi, dword [esp + 0x9c]
mov dword [edx + 0x3c], ecx
mov ecx, dword [esp + 0x12c]
mov dword [edx + 0x40], esi
mov esi, dword [esp + 0x48]
mov dword [edx + 0x44], ecx
mov ecx, dword [esp + 0xd8]
mov dword [edx + 0x48], esi
mov esi, dword [esp + 0x4c]
mov dword [edx + 0x4c], ecx
mov ecx, dword [esp + 0xdc]
mov dword [edx + 0x50], esi
mov esi, dword [esp + 0x80]
mov dword [edx + 0x54], ecx
mov ecx, dword [esp + 0x110]
mov dword [edx + 0x58], esi
mov esi, dword [esp + 0x50]
mov dword [edx + 0x5c], ecx
mov ecx, dword [esp + 0xe0]
mov dword [edx + 0x60], esi
mov esi, dword [esp + 0x170]
mov dword [edx + 0x64], ecx
mov ecx, dword [esp + 0x17c]
mov dword [edx + 0x68], esi
mov esi, dword [esp + 0xa0]
mov dword [edx + 0x6c], ecx
mov ecx, dword [esp + 0x130]
mov dword [edx + 0x70], esi
mov esi, dword [esp + 0xa4]
mov dword [edx + 0x74], ecx
mov ecx, dword [esp + 0x134]
mov dword [edx + 0x78], esi
mov esi, dword [esp + 0xa8]
mov dword [edx + 0x7c], ecx
mov ecx, dword [esp + 0x138]
mov dword [edx + 0x80], esi
mov esi, dword [esp + 0xac]
mov dword [edx + 0x84], ecx
mov ecx, dword [esp + 0x13c]
mov dword [edx + 0x88], esi
mov esi, dword [esp + 0xb0]
mov dword [edx + 0x8c], ecx
mov ecx, dword [esp + 0x140]
mov dword [edx + 0x90], esi
mov esi, dword [esp + 0xb4]
mov dword [edx + 0x94], ecx
mov ecx, dword [esp + 0x144]
mov dword [edx + 0x98], esi
mov esi, dword [esp + 0x60]
mov dword [edx + 0x9c], ecx
mov ecx, dword [esp + 0xf0]
mov dword [edx + 0xa0], esi
mov esi, dword [esp + 0x64]
mov dword [edx + 0xa4], ecx
mov ecx, dword [esp + 0xf4]
mov dword [edx + 0xa8], esi
mov esi, dword [esp + 0x68]
mov dword [edx + 0xac], ecx
mov ecx, dword [esp + 0xf8]
mov dword [edx + 0xb0], esi
mov esi, dword [esp + 0x54]
mov dword [edx + 0xb4], ecx
mov ecx, dword [esp + 0xe4]
mov dword [edx + 0xb8], esi
mov esi, dword [esp + 0x58]
mov dword [edx + 0xbc], ecx
mov ecx, dword [esp + 0xe8]
mov dword [edx + 0xc0], esi
mov esi, dword [esp + 0x5c]
mov dword [edx + 0xc4], ecx
mov ecx, dword [esp + 0xec]
mov dword [edx + 0xc8], esi
mov esi, dword [esp + 0x84]
mov dword [edx + 0xcc], ecx
mov ecx, dword [esp + 0x114]
mov dword [edx + 0xd0], esi
mov esi, dword [esp + 0x6c]
mov dword [edx + 0xd4], ecx
mov ecx, dword [esp + 0xfc]
mov dword [edx + 0xd8], esi
mov esi, dword [esp + 0x88]
mov dword [edx + 0xdc], ecx
mov ecx, dword [esp + 0x118]
mov dword [edx + 0xe0], esi
mov esi, dword [esp + 0x1c]
mov dword [edx + 0xe4], ecx
mov ecx, dword [esp + 0x10]
mov dword [edx + 0xe8], esi
mov esi, dword [esp + 0x8c]
mov dword [edx + 0xec], ecx
mov ecx, dword [esp + 0x11c]
mov dword [edx + 0xf0], esi
mov esi, dword [esp + 0xb8]
mov dword [edx + 0xf4], ecx
mov ecx, dword [esp + 0x148]
mov dword [edx + 0xf8], esi
mov esi, dword [esp + 0x70]
mov dword [edx + 0xfc], ecx
mov ecx, dword [esp + 0x100]
mov dword [edx + 0x100], esi
mov esi, dword [esp + 0x18]
mov dword [edx + 0x104], ecx
mov ecx, dword [esp + 0x14]
mov dword [edx + 0x108], esi
mov esi, dword [esp + 0x90]
mov dword [edx + 0x10c], ecx
mov ecx, dword [esp + 0x120]
mov dword [edx + 0x110], esi
mov esi, dword [esp + 0x94]
mov dword [edx + 0x114], ecx
mov ecx, dword [esp + 0x124]
mov dword [edx + 0x118], esi
mov esi, dword [esp + 0xbc]
mov dword [edx + 0x11c], ecx
mov ecx, dword [esp + 0x14c]
mov dword [edx + 0x120], esi
mov esi, dword [esp + 0x98]
mov dword [edx + 0x124], ecx
mov ecx, dword [esp + 0x128]
mov dword [edx + 0x128], esi
mov esi, dword [esp + 0x74]
mov dword [edx + 0x12c], ecx
mov ecx, dword [esp + 0x104]
mov dword [edx + 0x130], esi
lea esi, [esp + 0x1b4]
mov dword [edx + 0x134], ecx
mov ecx, esi
call fcn.0061729c
mov ebx, dword [esi]
cmp ebx, 3
jne 0x617042
mov al, byte [esp + 0x1b8]
mov byte [ebp + 4], al
jmp 0x616ca8
lea esi, [esp + 0x1b9]
mov al, byte [esi - 1]
mov byte [esp + 0xc4], al
lea eax, [esp + 0x7a5]
push 0x47b
push esi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x47f]
mov edx, dword [esi + 0x47b]
lea esi, [esp + 0x63c]
push 0xc
pop ecx
lea edi, [esp + 0x184]
test edx, edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xc0], edx
mov dword [esp + 4], eax
je 0x6170ad
push 0x14
pop ecx
xor edx, edx
div ecx
cmp ax, 0x20
push 0x20
pop ecx
cmovb ecx, eax
mov dword [esp], ecx
jmp 0x6170b4
mov dword [esp], 0
lea eax, [ebp + 5]
push 0x47b
lea ecx, [esp + 0x7a9]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea edi, [ebp + 0x488]
push 0xc
pop ecx
lea esi, [esp + 0x184]
rep movsd dword es:[edi], dword [esi]
mov al, byte [esp + 0xc4]
and dword [ebp + 0x4cc], 0
and dword [ebp + 0x4c8], 0
and dword [ebp + 0x4d4], 0
and dword [ebp + 0x4d0], 0
and dword [ebp + 0x4dc], 0
and dword [ebp + 0x4d8], 0
and dword [ebp + 0x4e4], 0
and dword [ebp + 0x4e0], 0
and dword [ebp + 0x4ec], 0
and dword [ebp + 0x4e8], 0
and dword [ebp + 0x4f4], 0
and dword [ebp + 0x4f0], 0
and dword [ebp + 0x4fc], 0
and dword [ebp + 0x4f8], 0
and dword [ebp + 0x504], 0
and dword [ebp + 0x500], 0
mov dword [ebp], ebx
mov ecx, dword [esp + 0x180]
mov byte [ebp + 4], al
mov eax, dword [esp + 0xc0]
mov dword [ebp + 0x480], eax
mov eax, dword [esp + 4]
mov dword [ebp + 0x484], eax
mov eax, dword [esp + 0x150]
mov dword [ebp + 0x4b8], eax
mov eax, dword [esp + 0xc34]
mov byte [ebp + 0x4bc], al
mov eax, ecx
mov word [ebp + 0x4bd], cx
shr eax, 0x10
mov byte [ebp + 0x4bf], al
mov eax, dword [esp + 0x38]
mov dword [ebp + 0x4c0], eax
mov eax, dword [esp + 0x174]
mov dword [ebp + 0x4c4], eax
mov eax, dword [esp]
mov byte [ebp + 0x508], al
jmp 0x616caf