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

Disassembly:
mov eax, 0x13c8
call fcn.006956ca
push ebx
push ebp
push esi
push edi
push dword [0x1010995c]
mov ebx, ecx
mov dword [esp + 0x1c], ebx
call dword [0x100df26c]
inc eax
push eax
push dword [0x1010995c]
call dword [0x100df268]
push 1
lea ecx, [esp + 0x64]
call fcn.00646c00
lea eax, [esp + 0x13dc]
push eax
lea ecx, [esp + 0x170]
call fcn.00646540
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x170]
call fcn.00646280
push 1
push 0x100e0cc8
lea ecx, [esp + 0xdc]
push dword [eax + 4]
push dword [eax]
call fcn.00646350
mov ecx, eax
call fcn.00646430
mov ebp, 0x3a
test eax, eax
je 0x5c5fab
mov eax, dword [0x100e0cdc]
lea ecx, [esp + 0x16c]
movq xmm0, qword [0x100e0cd4]
mov dword [esp + 0x6c], eax
mov ax, word [0x100e0ce0]
movq qword [esp + 0x64], xmm0
mov word [esp + 0x70], ax
call fcn.00646ba0
cmp ax, 6
jb 0x5c5fab
push 5
lea ecx, [esp + 0x170]
call fcn.00646b80
cmp bp, ax
jne 0x5c5fab
push 4
lea ecx, [esp + 0x170]
call fcn.00646b80
cmp dword [ebx + 4], 0
mov word [esp + 0x6c], ax
je 0x5c5fab
cmp dword [0x10109814], 0
je 0x5c5fab
push 4
lea ecx, [esp + 0x170]
call fcn.00646b80
movzx ecx, ax
mov eax, dword [0x101097f8]
movzx edi, word [eax + ecx*2]
sub edi, 0x41
cmp edi, 0x20
jae 0x5c5fab
mov esi, dword [0x1010955c]
lea eax, [esp + 0x374]
push 0
push 0x24
push eax
push 0x17
call dword [0x100df260]
push eax
mov eax, dword [esi + 0x137c]
lea ecx, [esi + 0x137c]
call dword [eax + 0x24]
call eax
test eax, eax
jne 0x5c5fab
mov al, byte [esp + edi + 0x378]
test al, al
je 0x5c5dd7
cmp al, 1
je 0x5c5dd7
cmp al, 4
jne 0x5c5fab
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], edi
lea esi, [ebx + 0x40]
push eax
mov ecx, esi
call fcn.005c5610
test eax, eax
jne 0x5c6df8
push 1
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 1
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
call fcn.005c53f0
push edi
mov ecx, esi
call fcn.005c5930
mov ebp, dword [esp + 0x2c]
lea eax, [esp + 0x14]
push eax
push ebp
lea eax, [esp + 0x74]
push eax
call dword [0x10109814]
mov ebx, eax
mov dword [esp + 0x38], edi
lea eax, [esp + 0x38]
mov ecx, esi
push eax
call fcn.005f8a20
cmp ebx, 0xea
jne 0x5c5e9a
mov dword [esp + 0x38], edi
jmp 0x5c5e50
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x2c]
add eax, 0x100
push eax
mov dword [esp + 0x18], eax
call fcn.005c53f0
push edi
mov ecx, esi
call fcn.005c5930
mov ebp, dword [esp + 0x2c]
lea eax, [esp + 0x14]
push eax
push ebp
lea eax, [esp + 0x74]
push eax
call dword [0x10109814]
mov ebx, eax
mov ecx, esi
lea eax, [esp + 0x38]
push eax
call fcn.005f8a20
cmp ebx, 0xea
je 0x5c5e50
test ebx, ebx
jne 0x5c5f9e
push 0x100e0ce4
lea ecx, [esp + 0x90]
call fcn.005bcf90
lea eax, [ebp + 2]
push eax
lea ecx, [esp + 0x90]
call fcn.005c4b20
push dword [esp + 0x8c]
lea ecx, [esp + 0xe8]
call fcn.00646310
mov ecx, eax
call fcn.00646370
mov esi, dword [esp + 0x13e8]
mov ecx, dword [esp + 0x18]
push esi
push dword [esp + 0x13e8]
push dword [eax + 4]
push dword [eax]
call fcn.005c5b10
mov ecx, esi
call fcn.00646370
cmp word [eax], bx
jbe 0x5c5f30
mov ecx, esi
call fcn.00646ba0
dec ax
mov ecx, esi
movzx eax, ax
push eax
call fcn.00646b80
mov ecx, 0x5c
cmp cx, ax
je 0x5c5f30
push 0x100e09a8
mov ecx, esi
call fcn.006468c0
lea ecx, [esp + 0x16c]
call fcn.00646ba0
cmp ax, 7
jbe 0x5c5f84
lea ecx, [esp + 0x16c]
call fcn.00646ba0
sub ax, 7
lea ecx, [esp + 0x16c]
movzx eax, ax
push eax
call fcn.00646370
lea ecx, [esp + 0xf8]
mov eax, dword [eax + 4]
add eax, 0xe
push eax
call fcn.00646330
mov ecx, eax
call fcn.00646370
push eax
mov ecx, esi
call fcn.00646840
lea ecx, [esp + 0x8c]
call fcn.005bd610
lea ecx, [esp + 0x2c]
call fcn.005bd4d0
jmp 0x5c6e18
lea ecx, [esp + 0x2c]
call fcn.005bd4d0
mov ebx, dword [esp + 0x18]
lea edi, [ebx + 0x18]
push edi
lea ecx, [esp + 0x40]
mov dword [esp + 0x28], edi
call fcn.00612800
lea eax, [esp + 0x58]
mov ecx, edi
push eax
call fcn.005c5840
mov esi, dword [esp + 0x58]
cmp esi, dword [edi + 4]
jne 0x5c5fd9
xor ebx, ebx
test esi, esi
je 0x5c5ff1
jmp 0x5c5feb
mov ebx, esi
test esi, esi
je 0x5c5ff1
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [esi]
push esi
call dword [eax + pe_nt_image_headers32]
mov eax, dword [esi]
push esi
call dword [eax + pe_nt_image_headers32]
test ebx, ebx
je 0x5c6130
lea esp, [esp]
lea ebp, [ebx + 0x210]
test ebx, ebx
je 0x5c6010
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
push ebx
lea eax, [esp + 0x38]
mov ecx, edi
push eax
call fcn.005c7f10
mov esi, dword [esp + 0x34]
cmp esi, dword [edi + 4]
jne 0x5c6044
xor edi, edi
test esi, esi
je 0x5c6036
mov eax, dword [esi]
push esi
call dword [eax + pe_nt_image_headers32]
mov dword [esp + 0x34], edi
test ebx, ebx
je 0x5c6040
mov eax, dword [ebx]
push ebx
call dword [eax + pe_nt_image_headers32]
mov ebx, edi
jmp 0x5c6074
mov edi, esi
test esi, esi
je 0x5c605e
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [esi]
push esi
call dword [eax + pe_nt_image_headers32]
mov dword [esp + 0x34], 0
test ebx, ebx
je 0x5c6068
mov eax, dword [ebx]
push ebx
call dword [eax + pe_nt_image_headers32]
mov ebx, edi
test edi, edi
je 0x5c6074
mov eax, dword [edi]
push edi
call dword [eax + pe_nt_image_headers32]
push ebp
lea ecx, [esp + 0x7ac]
call fcn.00646540
push 1
lea ecx, [esp + 0x170]
call fcn.00646370
push eax
lea ecx, [esp + 0x7b0]
call fcn.00646370
push eax
call dword [0x101095e4]
test eax, eax
je 0x5c635e
lea ecx, [esp + 0x7a8]
call fcn.00646370
push eax
lea ecx, [esp + 0x9b4]
call fcn.00646540
push 0x100e09a8
lea ecx, [esp + 0x9b4]
call fcn.006468c0
push 1
lea ecx, [esp + 0x9b4]
call fcn.00646370
push eax
lea ecx, [esp + 0x174]
call fcn.00646370
push eax
lea ecx, [esp + 0x160]
call fcn.006462f0
mov ecx, eax
call fcn.006463d0
test eax, eax
jne 0x5c62cd
lea ecx, [esp + 0x9b0]
call fcn.006466b0
lea ecx, [esp + 0x7a8]
call fcn.006466b0
test edi, edi
mov edi, dword [esp + 0x24]
jne 0x5c6000
cmp byte [esp + 0x40], 0
mov ebp, dword [0x100df280]
je 0x5c6176
mov esi, dword [esp + 0x3c]
dec dword [esi + 0x10]
jne 0x5c6176
push 0
lea eax, [esi + 8]
mov dword [esi + 0x10], 0
push eax
call dword [0x100df28c]
add esi, 0xc
cmp dword [esi], 0
jle 0x5c6176
push esi
call dword [0x100df290]
mov eax, dword [esp + 0x3c]
push 0
push 1
mov eax, dword [eax + 0x14]
push eax
call ebp
mov ebx, dword [esp + 0x18]
cmp dword [ebx + 4], 0
je 0x5c6220
push 0x100e0cf4
lea ecx, [esp + 0x78]
call fcn.00646310
push 1
lea ecx, [esp + 0x78]
call fcn.00646370
push eax
lea ecx, [esp + 0x174]
call fcn.00646370
push eax
lea ecx, [esp + 0x150]
call fcn.006462f0
mov ecx, eax
call fcn.006463d0
test eax, eax
je 0x5c6220
lea ecx, [esp + 0x74]
call fcn.00646ba0
movzx esi, ax
lea ecx, [esp + 0x16c]
add esi, esi
call fcn.00646370
lea ecx, [esp + 0x16c]
mov edi, dword [eax + 4]
add edi, esi
call fcn.00646ba0
movzx esi, ax
lea ecx, [esp + 0x16c]
add esi, esi
call fcn.00646370
mov eax, dword [eax + 4]
add eax, esi
cmp edi, eax
je 0x5c6220
mov edx, 0x5c
lea esp, [esp]
cmp dx, word [edi]
je 0x5c63df
add edi, 2
cmp edi, eax
jne 0x5c6210
lea ecx, [esp + 0x16c]
call fcn.00646370
xor esi, esi
mov edi, dword [eax + 4]
mov eax, 0x5c
cmp ax, word [edi]
je 0x5c6253
lea ecx, [esp + 0x16c]
call fcn.00646370
movzx ecx, si
add ecx, ecx
movzx eax, word [eax]
cmp ecx, eax
jne 0x5c62a8
lea ecx, [esp + 0xbb8]
call fcn.006466a0
lea eax, [esp + 0xbb8]
push eax
push esi
lea ecx, [esp + 0x174]
call fcn.00646370
lea ecx, [esp + 0x12c]
mov eax, dword [eax + 4]
push eax
call fcn.00646330
mov ecx, eax
call fcn.00646370
push eax
call fcn.0062d740
add esp, 8
test eax, eax
je 0x5c6483
lea ecx, [esp + 0xbb8]
call fcn.006466b0
lea ecx, [esp + 0x16c]
call fcn.00646370
movzx ecx, si
add ecx, ecx
movzx eax, word [eax]
cmp ecx, eax
je 0x5c6502
inc esi
add edi, 2
jmp 0x5c6231
mov ecx, dword [esp + 0x13e4]
lea eax, [esp + 0x7a8]
push eax
call fcn.006466d0
lea ecx, [esp + 0x16c]
call fcn.00646370
lea ecx, [esp + 0x9b0]
mov ax, word [eax]
shr ax, 1
movzx esi, ax
call fcn.00646ba0
movzx edi, ax
lea ecx, [esp + 0x9b0]
add edi, edi
call fcn.00646ba0
sub si, ax
lea ecx, [esp + 0x16c]
movzx eax, si
push eax
call fcn.00646370
lea ecx, [esp + 0xc0]
mov eax, dword [eax + 4]
add eax, edi
push eax
call fcn.00646330
mov ecx, eax
call fcn.00646370
mov ecx, dword [esp + 0x13e8]
push dword [eax + 4]
push dword [eax]
call fcn.00646730
lea ecx, [esp + 0x9b0]
call fcn.006466b0
jmp 0x5c637e
mov ecx, dword [esp + 0x13e4]
lea eax, [esp + 0x7a8]
push eax
call fcn.006466d0
mov ecx, dword [esp + 0x13e8]
call fcn.00646ac0
lea ecx, [esp + 0x7a8]
call fcn.006466b0
cmp byte [esp + 0x40], 0
je 0x5c6e18
mov esi, dword [esp + 0x3c]
dec dword [esi + 0x10]
jne 0x5c6e18
push 0
lea eax, [esi + 8]
mov dword [esi + 0x10], 0
push eax
call dword [0x100df28c]
add esi, 0xc
cmp dword [esi], 0
jle 0x5c6e18
push esi
call dword [0x100df290]
mov eax, dword [esp + 0x3c]
push 0
push 1
mov eax, dword [eax + 0x14]
push eax
call dword [0x100df280]
jmp 0x5c6e18
add edi, 2
cmp edi, eax
je 0x5c6220
mov esi, 0x3a
nop
movzx ecx, word [edi]
cmp dx, cx
je 0x5c6220
cmp si, cx
je 0x5c640d
add edi, 2
cmp edi, eax
jne 0x5c63f0
jmp 0x5c6220
cmp edi, eax
je 0x5c6220
cmp dx, word [edi]
je 0x5c6426
add edi, 2
cmp edi, eax
jne 0x5c6415
jmp 0x5c6220
push 0x100e0ce4
lea ecx, [esp + 0xfcc]
call fcn.006465a0
push edi
lea ecx, [esp + 0xfcc]
call fcn.006468c0
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0xfcc]
call fcn.00646280
push dword [esp + 0x13e8]
mov ecx, ebx
push dword [esp + 0x13e8]
push dword [eax + 4]
push dword [eax]
call fcn.005c5b10
lea ecx, [esp + 0xfc8]
call fcn.006466b0
jmp 0x5c6e18
lea eax, [esp + 0xbb8]
push eax
lea ecx, [esp + 0xdc4]
call fcn.00646540
lea ecx, [esp + 0x16c]
call fcn.00646370
lea ecx, [esp + 0xdc]
mov ax, word [eax]
shr ax, 1
sub ax, si
movzx eax, ax
push eax
push edi
call fcn.00646330
mov ecx, eax
call fcn.00646370
push eax
lea ecx, [esp + 0xdc4]
call fcn.00646840
lea eax, [esp + 0xdc0]
push eax
lea ecx, [esp + 0x170]
call fcn.006466d0
lea ecx, [esp + 0xdc0]
call fcn.006466b0
lea ecx, [esp + 0xbb8]
call fcn.006466b0
jmp 0x5c6220
lea esi, [ebx + 0x24]
mov dword [esp + 0x44], esi
call dword [0x100df284]
mov edi, eax
lea ecx, [esi + 8]
cmp edi, dword [ecx]
je 0x5c6537
cmp dword [ecx], 0
jne 0x5c6560
push 0
push edi
push ecx
call dword [0x100df288]
test eax, eax
sete al
test al, al
je 0x5c6560
mov dword [esi + 0x10], 0
inc dword [esi + 0x10]
mov byte [esp + 0x13], 1
mov edi, dword [esp + 0x24]
lea eax, [esp + 0x4c]
push eax
mov ecx, edi
call fcn.005c5840
mov esi, dword [esp + 0x4c]
cmp esi, dword [edi + 4]
jne 0x5c6574
xor ebx, ebx
test esi, esi
je 0x5c658c
jmp 0x5c6586
push 0xffffffffffffffff
push edi
mov ecx, esi
call fcn.005baa90
test al, al
jne 0x5c6537
mov byte [esp + 0x13], al
jmp 0x5c653f
mov ebx, esi
test esi, esi
je 0x5c658c
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [esi]
push esi
call dword [eax + pe_nt_image_headers32]
mov eax, dword [esi]
push esi
call dword [eax + pe_nt_image_headers32]
test ebx, ebx
je 0x5c66d8
lea ebp, [ebx + 0x210]
test ebx, ebx
je 0x5c65a4
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
push ebx
lea eax, [esp + 0x20]
mov ecx, edi
push eax
call fcn.005c7f10
mov esi, dword [esp + 0x1c]
cmp esi, dword [edi + 4]
jne 0x5c65d8
xor edi, edi
test esi, esi
je 0x5c65ca
mov eax, dword [esi]
push esi
call dword [eax + pe_nt_image_headers32]
mov dword [esp + 0x1c], edi
test ebx, ebx
je 0x5c65d4
mov eax, dword [ebx]
push ebx
call dword [eax + pe_nt_image_headers32]
mov ebx, edi
jmp 0x5c6608
mov edi, esi
test esi, esi
je 0x5c65f2
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [esi]
push esi
call dword [eax + pe_nt_image_headers32]
mov dword [esp + 0x1c], 0
test ebx, ebx
je 0x5c65fc
mov eax, dword [ebx]
push ebx
call dword [eax + pe_nt_image_headers32]
mov ebx, edi
test edi, edi
je 0x5c6608
mov eax, dword [edi]
push edi
call dword [eax + pe_nt_image_headers32]
push ebp
lea ecx, [esp + 0x39c]
call fcn.00646540
push 1
lea ecx, [esp + 0x170]
call fcn.00646370
push eax
lea ecx, [esp + 0x3a0]
call fcn.00646370
push eax
call dword [0x101095e4]
test eax, eax
je 0x5c68f7
lea ecx, [esp + 0x398]
call fcn.00646370
push eax
lea ecx, [esp + 0x5a4]
call fcn.00646540
push 0x100e09a8
lea ecx, [esp + 0x5a4]
call fcn.006468c0
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x170]
call fcn.00646280
push 1
lea ecx, [esp + 0x5a4]
mov esi, eax
call fcn.00646370
push eax
push dword [esi + 4]
lea ecx, [esp + 0xf8]
push dword [esi]
call fcn.00646350
mov ecx, eax
call fcn.006463d0
test eax, eax
jne 0x5c6866
lea ecx, [esp + 0x5a0]
call fcn.006466b0
lea ecx, [esp + 0x398]
call fcn.006466b0
test edi, edi
mov edi, dword [esp + 0x24]
jne 0x5c6594
mov ebp, dword [0x100df280]
cmp byte [esp + 0x13], 0
je 0x5c671a
mov esi, dword [esp + 0x44]
dec dword [esi + 0x10]
jne 0x5c671a
push 0
lea eax, [esi + 8]
mov dword [esi + 0x10], 0
push eax
mov eax, dword [0x100df28c]
call eax
add esi, 0xc
cmp dword [esi], 0
jle 0x5c671a
mov eax, dword [0x100df290]
push esi
call eax
mov eax, dword [esp + 0x44]
push 0
push 1
mov eax, dword [eax + 0x14]
push eax
call ebp
push 0
push 0x40
lea ecx, [esp + 0x174]
call fcn.00646370
push eax
push 0
lea ecx, [esp + 0x114]
call fcn.006462c0
mov eax, dword [esp + 0x18]
cmp dword [eax + 4], 0
je 0x5c6a78
lea ecx, [esp + 0x16c]
call fcn.00646370
lea ecx, [esp + 0x16c]
mov ax, word [eax]
shr ax, 1
movzx edi, ax
mov dword [esp + 0x18], edi
movzx ebp, di
call fcn.00646370
movzx ecx, di
xor esi, esi
mov dword [esp + 0x14], esi
mov eax, dword [eax + 4]
lea ebx, [eax + ecx*2]
mov edi, edi
mov eax, 0x5c
cmp ax, word [ebx]
je 0x5c6793
cmp bp, di
jne 0x5c6a3e
lea ecx, [esp + 0x16c]
call fcn.00646370
lea ecx, [ebp*2]
push 0x21
push 3
mov word [eax], cx
lea ecx, [esp + 0x104]
mov esi, dword [0x1010955c]
mov dword [esp + 0x28], 0
call fcn.006462a0
mov ecx, eax
call fcn.00646370
push eax
lea ecx, [esp + 0x110]
call fcn.00646370
push eax
push 0x100000
lea eax, [esp + 0x34]
push eax
mov eax, dword [esi + 0x5dc]
lea ecx, [esi + 0x5dc]
call dword [eax + 0x24]
call eax
test eax, eax
jne 0x5c6a18
mov edi, 0x400
xor esi, esi
test edi, edi
je 0x5c6815
push edi
call fcn.00689600
add esp, 4
mov esi, eax
mov ecx, dword [0x1010955c]
lea eax, [esp + 0x98]
push eax
push edi
add ecx, 0x107c
push esi
push 1
push dword [esp + 0x30]
mov eax, dword [ecx]
call dword [eax + 0x24]
call eax
cmp eax, 0xc0000004
je 0x5c6851
cmp eax, 0x80000005
je 0x5c6851
cmp eax, 0xc0000023
jne 0x5c697a
add edi, 0x100
test esi, esi
je 0x5c6804
push esi
call fcn.006895f0
add esp, 4
jmp 0x5c6804
mov ecx, dword [esp + 0x13e4]
lea eax, [esp + 0x398]
push eax
call fcn.006466d0
lea ecx, [esp + 0x16c]
call fcn.00646370
lea ecx, [esp + 0x5a0]
mov ax, word [eax]
shr ax, 1
movzx esi, ax
call fcn.00646ba0
movzx edi, ax
lea ecx, [esp + 0x5a0]
add edi, edi
call fcn.00646ba0
sub si, ax
lea ecx, [esp + 0x16c]
movzx eax, si
push eax
call fcn.00646370
lea ecx, [esp + 0x140]
mov eax, dword [eax + 4]
add eax, edi
push eax
call fcn.00646330
mov ecx, eax
call fcn.00646370
mov ecx, dword [esp + 0x13e8]
push dword [eax + 4]
push dword [eax]
call fcn.00646730
lea ecx, [esp + 0x5a0]
call fcn.006466b0
jmp 0x5c6917
mov ecx, dword [esp + 0x13e4]
lea eax, [esp + 0x398]
push eax
call fcn.006466d0
mov ecx, dword [esp + 0x13e8]
call fcn.00646ac0
lea ecx, [esp + 0x398]
call fcn.006466b0
cmp byte [esp + 0x13], 0
je 0x5c6e18
mov esi, dword [esp + 0x44]
dec dword [esi + 0x10]
jne 0x5c6e18
push 0
lea eax, [esi + 8]
mov dword [esi + 0x10], 0
push eax
mov eax, dword [0x100df28c]
call eax
add esi, 0xc
cmp dword [esi], 0
jle 0x5c6e18
mov eax, dword [0x100df290]
push esi
call eax
mov eax, dword [esp + 0x44]
push 0
push 1
mov eax, dword [eax + 0x14]
push eax
call dword [0x100df280]
jmp 0x5c6e18
test eax, eax
jne 0x5c6a07
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x11d0]
sub eax, ebp
push eax
push ebx
call fcn.00646620
push dword [esi + 4]
lea ecx, [esp + 0x170]
push dword [esi]
call fcn.00646730
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x11d4]
call fcn.00646280
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x170]
call fcn.00646840
lea ecx, [esp + 0x16c]
call fcn.00646370
lea ecx, [esp + 0x11d0]
mov dword [esp + 0x14], 1
mov ax, word [eax]
shr ax, 1
movzx edi, ax
mov dword [esp + 0x18], edi
call fcn.006466b0
push esi
call fcn.006895f0
add esp, 4
jmp 0x5c6a18
test esi, esi
je 0x5c6a14
push esi
call fcn.006895f0
add esp, 4
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5c6a3a
cmp eax, 0xffffffff
je 0x5c6a3a
push eax
call fcn.0067e7c0
mov ecx, dword [esp + 0x20]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov dword [esp + 0x20], ecx
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x16c]
call fcn.00646370
cmp dword [eax + 4], ebx
je 0x5c6a62
add ebp, 0xffff
sub ebx, 2
test esi, esi
je 0x5c6780
jmp 0x5c6a78
test esi, esi
jne 0x5c6a78
lea ecx, [esp + 0x16c]
call fcn.00646370
lea ecx, [edi + edi]
mov word [eax], cx
lea ecx, [esp + 0x16c]
call fcn.00646370
lea ecx, [esp + 0x16c]
xor edi, edi
mov ebx, dword [eax + 4]
call fcn.00646370
mov esi, 0x5c
mov ax, word [eax]
shr ax, 1
movzx ebp, ax
cmp si, word [ebx]
je 0x5c6ab1
cmp di, bp
jne 0x5c6bba
lea ecx, [esp + 0x16c]
call fcn.00646370
lea ecx, [edi + edi]
mov dword [esp + 0x1c], 0
mov word [eax], cx
cmp si, word [ebx]
jne 0x5c6ae8
lea ecx, [esp + 0x16c]
call fcn.00646370
mov dword [esp + 0x1c], 1
add word [eax], 2
mov esi, dword [0x1010955c]
lea ecx, [esp + 0x14c]
push 0x21
push 3
mov dword [esp + 0x30], 0
call fcn.006462a0
mov ecx, eax
call fcn.00646370
push eax
lea ecx, [esp + 0x110]
call fcn.00646370
push eax
push 0x100001
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esi + 0x5dc]
lea ecx, [esi + 0x5dc]
call dword [eax + 0x24]
call eax
test eax, eax
jne 0x5c6ba3
push 0x400
call fcn.00689600
mov esi, dword [0x1010955c]
lea ecx, [esp + 0x120]
add esp, 4
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0x400
push 1
push 0
push 0
push 3
push 0x400
push eax
call fcn.006462a0
mov ecx, eax
call fcn.00646370
push eax
mov eax, dword [esi + 0x9fc]
lea ecx, [esi + 0x9fc]
push 0
push 0
push 0
push dword [esp + 0x50]
call dword [eax + 0x24]
call eax
test eax, eax
je 0x5c6bc3
lea ecx, [esp + 0x50]
call fcn.005bd4d0
lea ecx, [esp + 0x28]
call fcn.005c4990
cmp di, bp
je 0x5c6c5f
mov esi, 0x5c
inc edi
add ebx, 2
jmp 0x5c6aa3
mov ebx, dword [esp + 0x13e4]
lea eax, [esp + 0x16c]
push eax
mov ecx, ebx
call fcn.006466d0
cmp dword [esp + 0x1c], 0
je 0x5c6bef
mov ecx, ebx
call fcn.00646370
mov ecx, 0xfffe
add word [eax], cx
cmp bp, di
jne 0x5c6c07
push 0x100e03cc
lea ecx, [esp + 0x160]
call fcn.00646310
jmp 0x5c6c30
sub ebp, edi
lea ecx, [esp + 0x16c]
dec ebp
push ebp
call fcn.00646370
movzx ecx, di
mov eax, dword [eax + 4]
lea eax, [eax + ecx*2]
add eax, 2
lea ecx, [esp + 0x168]
push eax
call fcn.00646330
mov ecx, eax
call fcn.00646370
mov ecx, dword [esp + 0x13e8]
push dword [eax + 4]
push dword [eax]
call fcn.00646730
lea ecx, [esp + 0x50]
call fcn.005bd4d0
lea ecx, [esp + 0x28]
call fcn.005c4990
jmp 0x5c6ddc
lea ecx, [esp + 0x16c]
call fcn.00646370
lea ecx, [ebp*2]
push 1
push 0x100e0cc8
mov word [eax], cx
lea ecx, [esp + 0x174]
call fcn.00646370
push eax
lea ecx, [esp + 0x140]
call fcn.006462f0
mov ecx, eax
call fcn.00646430
test eax, eax
je 0x5c6df8
mov eax, dword [0x100e0cdc]
lea ecx, [esp + 0x16c]
movq xmm0, qword [0x100e0cd4]
mov dword [esp + 0x84], eax
movzx eax, word [0x100e0ce0]
movq qword [esp + 0x7c], xmm0
mov word [esp + 0x88], ax
call fcn.00646370
mov ecx, 0xfffe
movzx eax, word [eax]
and ax, cx
cmp ax, 0xc
jb 0x5c6df8
lea ecx, [esp + 0x16c]
call fcn.00646370
mov ecx, 0x3a
mov eax, dword [eax + 4]
cmp cx, word [eax + 0xa]
jne 0x5c6df8
lea ecx, [esp + 0x16c]
call fcn.00646370
lea ecx, [esp + 0xac]
mov eax, dword [eax + 4]
mov ax, word [eax + 8]
mov word [esp + 0x84], ax
lea eax, [esp + 0x7c]
push eax
call fcn.00646310
mov ecx, eax
call fcn.00646370
mov ebx, dword [esp + 0x13e4]
mov ecx, ebx
push dword [eax + 4]
push dword [eax]
call fcn.00646730
lea ecx, [esp + 0x16c]
mov edi, 6
call fcn.00646370
cmp word [eax], 0xc
jne 0x5c6d7c
push 0x100e03cc
lea ecx, [esp + 0xb8]
call fcn.00646310
jmp 0x5c6dc4
lea ecx, [esp + 0x16c]
call fcn.00646370
mov esi, dword [eax + 4]
mov eax, 0x5c
add esi, 0xc
cmp ax, word [esi]
jne 0x5c6d9e
add esi, 2
lea edi, [eax - 0x55]
lea ecx, [esp + 0x16c]
call fcn.00646370
lea ecx, [esp + 0xc4]
mov ax, word [eax]
shr ax, 1
sub ax, di
movzx eax, ax
push eax
push esi
call fcn.00646330
mov ecx, eax
call fcn.00646370
mov ecx, dword [esp + 0x13e8]
push dword [eax + 4]
push dword [eax]
call fcn.00646730
sub esp, 0x208
mov ecx, esp
push ebx
call fcn.00646540
mov ecx, dword [esp + 0x22c]
call fcn.005c5960
jmp 0x5c6e18
mov ecx, dword [esp + 0x13e4]
call fcn.00646ac0
mov ecx, dword [esp + 0x13e8]
lea eax, [esp + 0x16c]
push eax
call fcn.006466d0
lea ecx, [esp + 0x16c]
call fcn.006466b0
lea ecx, [esp + 0x60]
call fcn.00646c20
push dword [0x1010995c]
call dword [0x100df26c]
dec eax
push eax
push dword [0x1010995c]
call dword [0x100df268]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x13c8
ret 0x10