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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
mov byte [ebp - 1], dl
mov ebx, eax
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
xor edx, edx
push ebp
push 0x7c7a5c
push dword fs:[edx]
mov dword fs:[edx], esp
xor eax, eax
mov dword [ebp - 0x24], eax
mov dl, 1
mov eax, dword [0x7c177c]
call fcn.007c1824
mov dword [ebp - 0xc], eax
push 0
mov ecx, dword [ebp - 0x24]
mov dl, 1
mov eax, dword [0x7c15c8]
call fcn.007c1660
mov dword [ebp - 0x1c], eax
xor edi, edi
xor eax, eax
mov dword [ebp - 0x10], eax
mov esi, dword [ebx + 4]
test esi, esi
jne 0x7c6c34
mov bl, 0xfe
call fcn.004062b8
jmp 0x7c7a67
mov eax, esi
call fcn.007c8b60
test al, al
jne 0x7c6c4b
mov bl, 0xfe
call fcn.004062b8
jmp 0x7c7a67
cmp byte [ebx + 8], 0xb
jne 0x7c6c55
mov byte [ebx + 8], 0xc
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xc]
call fcn.007c8bbc
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov esi, dword [eax + 0x10]
mov byte [ebp - 0x1d], 0
movzx eax, byte [ebx + 8]
cmp eax, 0x1d
ja case.0x7c6c80.1
jmp dword [eax*4 + 0x7c6c87]
cmp dword [ebx + 0xc], 0
jne 0x7c6d0e
mov byte [ebx + 8], 0xc
jmp case.0x7c6c80.29
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
mov edx, 0x10
call fcn.007c8c54
test al, al
je 0x7c795a
mov edx, 8
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
shl eax, 8
mov edx, dword [ebp - 0xc]
mov edx, dword [edx + 0x14]
shr edx, 8
add eax, edx
mov ecx, 0x1f
xor edx, edx
div ecx
test edx, edx
jbe 0x7c6d64
mov eax, dword [ebx + 4]
mov edx, 0x7c7a74
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp case.0x7c6c80.29
mov edx, 4
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
cmp eax, 8
je 0x7c6d8c
mov eax, dword [ebx + 4]
mov edx, 0x7c7aac
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp case.0x7c6c80.29
mov edx, 4
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
mov edx, 4
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
add eax, 8
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0x24]
cmp eax, dword [ebp - 0x10]
jae 0x7c6dca
mov eax, dword [ebx + 4]
mov edx, 0x7c7ae8
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp case.0x7c6c80.29
mov ecx, dword [ebp - 0x10]
mov eax, 1
shl eax, cl
mov dword [ebx + 0x14], eax
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.007c0fdc
mov edx, dword [ebx + 4]
mov dword [edx + 0x30], eax
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.007c0fdc
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0xc]
test dword [eax + 0x14], 0x200
jbe 0x7c6e0c
mov byte [ebx + 8], 9
jmp 0x7c6e10
mov byte [ebx + 8], 0xb
mov eax, dword [ebp - 0xc]
call fcn.007c18e4
jmp case.0x7c6c80.29
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
mov edx, 0x20
call fcn.007c8c54
test al, al
je 0x7c795a
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0x14]
mov eax, ebx
call fcn.007c6a90
mov edx, dword [ebx + 4]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0x14]
mov eax, ebx
call fcn.007c6a90
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0xc]
call fcn.007c18e4
mov byte [ebx + 8], 0xa
jmp case.0x7c6c80.29
cmp byte [ebx + 0x10], 0
jne 0x7c6e86
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xc]
call fcn.007c8c00
mov bl, 2
call fcn.004062b8
jmp 0x7c7a67
push 0
xor ecx, ecx
mov edx, dword [ebp - 0x24]
xor eax, eax
call fcn.007c0fdc
mov edx, dword [ebx + 4]
mov dword [edx + 0x30], eax
push 0
xor ecx, ecx
mov edx, dword [ebp - 0x24]
xor eax, eax
call fcn.007c0fdc
mov dword [ebx + 0x18], eax
mov byte [ebx + 8], 0xb
jmp case.0x7c6c80.29
cmp byte [ebp - 1], 5
je 0x7c795a
mov byte [ebx + 8], 0xc
jmp case.0x7c6c80.29
cmp byte [ebx + 9], 0
je 0x7c6ede
mov eax, dword [ebp - 0xc]
call fcn.007c18f0
mov byte [ebx + 8], 0x18
jmp case.0x7c6c80.29
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
mov edx, 3
call fcn.007c8c54
test al, al
je 0x7c795a
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
test eax, eax
seta al
mov byte [ebx + 9], al
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
mov edx, 2
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
sub eax, 1
jb 0x7c6f34
je 0x7c6f3a
dec eax
je 0x7c6f47
dec eax
je 0x7c6f4d
jmp 0x7c6f5e
mov byte [ebx + 8], 0xd
jmp 0x7c6f5e
mov eax, ebx
call fcn.007c6a58
mov byte [ebx + 8], 0x12
jmp 0x7c6f5e
mov byte [ebx + 8], 0xf
jmp 0x7c6f5e
mov eax, dword [ebx + 4]
mov edx, 0x7c7b18
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
mov edx, 2
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
jmp case.0x7c6c80.29
mov eax, dword [ebp - 0xc]
call fcn.007c18f0
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
mov edx, 0x20
call fcn.007c8c54
test al, al
je 0x7c795a
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x14]
mov edx, eax
and edx, 0xffff
shr eax, 0x10
xor eax, 0xffff
cmp edx, eax
je 0x7c6fc0
mov eax, dword [ebx + 4]
mov edx, 0x7c7b44
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp case.0x7c6c80.29
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x14]
and eax, 0xffff
mov dword [ebx + 0x78], eax
mov eax, dword [ebp - 0xc]
call fcn.007c18e4
mov byte [ebx + 8], 0xe
jmp case.0x7c6c80.29
mov edi, dword [ebx + 0x78]
test edi, edi
jbe 0x7c701c
mov eax, dword [ebp - 0xc]
cmp edi, dword [eax + 0xc]
jbe 0x7c6ff4
mov eax, dword [ebp - 0xc]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp - 0xc]
cmp edi, dword [eax + 0x10]
jbe 0x7c7002
mov eax, dword [ebp - 0xc]
mov edi, dword [eax + 0x10]
test edi, edi
je 0x7c795a
mov eax, dword [ebx + 4]
mov ecx, edi
mov edx, dword [ebp - 0xc]
call fcn.007c8c3c
jmp case.0x7c6c80.29
mov byte [ebx + 8], 0xb
jmp case.0x7c6c80.29
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
mov edx, 0xe
call fcn.007c8c54
test al, al
je 0x7c795a
mov edx, 5
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
add eax, 0x101
mov dword [ebx + 0x54], eax
mov edx, 5
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
mov edx, 5
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
inc eax
mov dword [ebx + 0x58], eax
mov edx, 5
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
mov edx, 4
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
add eax, 4
mov dword [ebx + 0x50], eax
mov edx, 4
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
cmp dword [ebx + 0x54], 0x11e
ja 0x7c70ac
cmp dword [ebx + 0x58], 0x1e
jbe 0x7c70c2
mov eax, dword [ebx + 4]
mov edx, 0x7c7b84
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp case.0x7c6c80.29
xor eax, eax
mov dword [ebx + 0x5c], eax
mov byte [ebx + 8], 0x10
jmp case.0x7c6c80.29
mov byte [ebp - 0x1e], 0
jmp 0x7c7121
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
mov edx, 3
call fcn.007c8c54
test al, al
jne 0x7c70f0
mov byte [ebp - 0x1e], 1
jmp 0x7c7129
mov edx, 3
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
mov edx, dword [ebx + 0x5c]
mov ecx, dword [0x8e850c]
movzx edx, word [ecx + edx*2]
mov ecx, dword [ebx + 0x64]
mov word [ecx + edx*2], ax
inc dword [ebx + 0x5c]
mov edx, 3
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
mov eax, dword [ebx + 0x5c]
cmp eax, dword [ebx + 0x50]
jb 0x7c70d6
cmp byte [ebp - 0x1e], 0
jne 0x7c795a
jmp 0x7c714b
mov edx, dword [0x8e850c]
movzx eax, word [edx + eax*2]
mov edx, dword [ebx + 0x64]
mov word [edx + eax*2], 0
inc dword [ebx + 0x5c]
mov eax, dword [ebx + 0x5c]
cmp eax, 0x13
jb 0x7c7135
xor eax, eax
mov dword [ebx + 0x60], eax
mov edx, dword [ebx + 0x6c]
mov eax, dword [ebx + 0x40]
xor ecx, ecx
call fcn.007c5e00
mov dword [ebx + 0x48], 7
push 0
push 0x13
mov eax, dword [ebx + 0x6c]
push eax
lea eax, [ebx + 0x60]
push eax
lea eax, [ebx + 0x48]
push eax
mov eax, dword [ebx + 0x68]
push eax
mov ecx, dword [ebx + 0x64]
mov eax, dword [0x8e07dc]
mov eax, dword [eax]
xor edx, edx
call fcn.007c60e0
mov byte [ebp - 0x1d], al
cmp byte [ebp - 0x1d], 0
je 0x7c71b0
mov eax, dword [ebx + 4]
mov edx, 0x7c7bd4
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp case.0x7c6c80.29
xor eax, eax
mov dword [ebx + 0x5c], eax
mov byte [ebx + 8], 0x11
jmp case.0x7c6c80.29
mov byte [ebp - 0x1e], 0
jmp 0x7c73ad
mov edx, dword [ebx + 0x48]
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
mov edx, eax
mov eax, dword [ebx + 0x40]
call fcn.007c5e84
mov dword [ebp - 0x14], eax
movzx eax, byte [ebp - 0x13]
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 0x18]
jbe 0x7c71fe
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xc]
call fcn.007c8c90
test al, al
jne 0x7c71c7
mov byte [ebp - 0x1e], 1
cmp byte [ebp - 0x1e], 0
jne 0x7c73bc
cmp word [ebp - 0x12], 0x10
jae 0x7c724d
movzx edx, byte [ebp - 0x13]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
call fcn.007c8c54
test al, al
jne 0x7c722b
mov byte [ebp - 0x1e], 1
jmp 0x7c73bc
movzx edx, byte [ebp - 0x13]
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
mov eax, dword [ebx + 0x5c]
mov edx, dword [ebx + 0x64]
movzx ecx, word [ebp - 0x12]
mov word [edx + eax*2], cx
inc dword [ebx + 0x5c]
jmp 0x7c73ad
cmp word [ebp - 0x12], 0x10
jne 0x7c72cd
movzx edx, byte [ebp - 0x13]
add edx, 2
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
call fcn.007c8c54
test al, al
jne 0x7c7273
mov byte [ebp - 0x1e], 1
jmp 0x7c73bc
movzx edx, byte [ebp - 0x13]
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
cmp dword [ebx + 0x5c], 0
jne 0x7c729b
mov eax, dword [ebx + 4]
mov edx, 0x7c7c0c
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp 0x7c73bc
mov eax, dword [ebx + 0x5c]
mov edx, dword [ebx + 0x64]
movzx eax, word [edx + eax*2 - 2]
mov dword [ebp - 0x10], eax
mov edx, 2
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
mov edi, eax
add edi, 3
mov edx, 2
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
jmp 0x7c7371
cmp word [ebp - 0x12], 0x11
jne 0x7c7325
movzx edx, byte [ebp - 0x13]
add edx, 3
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
call fcn.007c8c54
test al, al
jne 0x7c72f3
mov byte [ebp - 0x1e], 1
jmp 0x7c73bc
movzx edx, byte [ebp - 0x13]
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
xor eax, eax
mov dword [ebp - 0x10], eax
mov edx, 3
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
mov edi, eax
add edi, 3
mov edx, 3
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
jmp 0x7c7371
movzx edx, byte [ebp - 0x13]
add edx, 7
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
call fcn.007c8c54
test al, al
jne 0x7c7341
mov byte [ebp - 0x1e], 1
jmp 0x7c73bc
movzx edx, byte [ebp - 0x13]
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
xor eax, eax
mov dword [ebp - 0x10], eax
mov edx, 7
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
mov edi, eax
add edi, 0xb
mov edx, 7
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
mov eax, dword [ebx + 0x54]
add eax, dword [ebx + 0x58]
mov edx, dword [ebx + 0x5c]
add edx, edi
cmp eax, edx
jae 0x7c7393
mov eax, dword [ebx + 4]
mov edx, 0x7c7c0c
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp 0x7c73bc
test edi, edi
jbe 0x7c73ad
dec edi
mov eax, dword [ebx + 0x5c]
mov edx, dword [ebx + 0x64]
movzx ecx, word [ebp - 0x10]
mov word [edx + eax*2], cx
inc dword [ebx + 0x5c]
test edi, edi
ja 0x7c7397
mov eax, dword [ebx + 0x54]
add eax, dword [ebx + 0x58]
cmp eax, dword [ebx + 0x5c]
ja 0x7c71c7
cmp byte [ebp - 0x1e], 0
jne 0x7c795a
cmp byte [ebx + 8], 0x1b
je case.0x7c6c80.29
xor eax, eax
mov dword [ebx + 0x60], eax
mov edx, dword [ebx + 0x6c]
mov eax, dword [ebx + 0x40]
xor ecx, ecx
call fcn.007c5e00
mov dword [ebx + 0x48], 9
push 0
mov eax, dword [ebx + 0x54]
push eax
mov eax, dword [ebx + 0x6c]
push eax
lea eax, [ebx + 0x60]
push eax
lea eax, [ebx + 0x48]
push eax
mov eax, dword [ebx + 0x68]
push eax
mov ecx, dword [ebx + 0x64]
mov eax, dword [0x8e07dc]
mov eax, dword [eax]
mov dl, 1
call fcn.007c60e0
mov byte [ebp - 0x1d], al
cmp byte [ebp - 0x1d], 0
je 0x7c742f
mov eax, dword [ebx + 4]
mov edx, 0x7c7c48
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp case.0x7c6c80.29
mov ecx, dword [ebx + 0x60]
mov edx, dword [ebx + 0x6c]
mov eax, dword [ebx + 0x44]
call fcn.007c5e00
mov dword [ebx + 0x4c], 6
mov eax, dword [ebx + 0x54]
push eax
mov eax, dword [ebx + 0x58]
push eax
mov eax, dword [ebx + 0x6c]
push eax
lea eax, [ebx + 0x60]
push eax
lea eax, [ebx + 0x4c]
push eax
mov eax, dword [ebx + 0x68]
push eax
mov ecx, dword [ebx + 0x64]
mov eax, dword [0x8e07dc]
mov eax, dword [eax]
mov dl, 2
call fcn.007c60e0
mov byte [ebp - 0x1d], al
cmp byte [ebp - 0x1d], 0
je 0x7c748c
mov eax, dword [ebx + 4]
mov edx, 0x7c7c88
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp case.0x7c6c80.29
mov byte [ebx + 8], 0x12
jmp case.0x7c6c80.29
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0xc], 6
jb 0x7c74ce
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x10], 0x102
jb 0x7c74ce
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xc]
call fcn.007c8c00
mov edx, esi
mov eax, ebx
call fcn.007c7d94
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xc]
call fcn.007c8bbc
jmp case.0x7c6c80.29
mov byte [ebp - 0x1e], 0
mov edx, dword [ebx + 0x48]
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
mov edx, eax
mov eax, dword [ebx + 0x40]
call fcn.007c5e84
mov dword [ebp - 0x14], eax
movzx eax, byte [ebp - 0x13]
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 0x18]
jbe 0x7c7509
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xc]
call fcn.007c8c90
test al, al
jne 0x7c74d2
mov byte [ebp - 0x1e], 1
cmp byte [ebp - 0x1e], 0
jne 0x7c795a
movzx eax, byte [ebp - 0x14]
test al, al
jbe 0x7c758b
test al, 0xf0
jne 0x7c758b
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
movzx edx, byte [ebp - 0x17]
movzx eax, byte [ebp - 0x18]
add edx, eax
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
mov edx, eax
movzx ecx, byte [ebp - 0x17]
shr edx, cl
movzx eax, word [ebp - 0x16]
add edx, eax
mov eax, dword [ebx + 0x40]
call fcn.007c5e84
mov dword [ebp - 0x14], eax
movzx eax, byte [ebp - 0x17]
movzx edx, byte [ebp - 0x13]
add eax, edx
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 0x18]
jbe 0x7c7575
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xc]
call fcn.007c8c90
test al, al
jne 0x7c7525
mov byte [ebp - 0x1e], 1
cmp byte [ebp - 0x1e], 0
jne 0x7c795a
movzx edx, byte [ebp - 0x17]
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
movzx edx, byte [ebp - 0x13]
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
movzx eax, word [ebp - 0x12]
mov dword [ebx + 0x78], eax
movzx eax, byte [ebp - 0x14]
test al, al
jne 0x7c75af
mov byte [ebx + 8], 0x17
jmp case.0x7c6c80.29
test al, 0x20
jbe 0x7c75bd
mov byte [ebx + 8], 0xb
jmp case.0x7c6c80.29
test al, 0x40
jbe 0x7c75d8
mov eax, dword [ebx + 4]
mov edx, 0x7c7cb8
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp case.0x7c6c80.29
and eax, 0xf
mov dword [ebx + 0x3c], eax
mov byte [ebx + 8], 0x13
jmp case.0x7c6c80.29
cmp dword [ebx + 0x3c], 0
jbe 0x7c761c
mov edx, dword [ebx + 0x3c]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
call fcn.007c8c54
test al, al
je 0x7c795a
mov edx, dword [ebx + 0x3c]
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
add dword [ebx + 0x78], eax
mov edx, dword [ebx + 0x3c]
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
mov byte [ebx + 8], 0x14
jmp case.0x7c6c80.29
mov byte [ebp - 0x1e], 0
mov edx, dword [ebx + 0x4c]
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
mov edx, eax
mov eax, dword [ebx + 0x44]
call fcn.007c5e84
mov dword [ebp - 0x14], eax
movzx eax, byte [ebp - 0x13]
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 0x18]
jbe 0x7c7660
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xc]
call fcn.007c8c90
test al, al
jne 0x7c7629
mov byte [ebp - 0x1e], 1
cmp byte [ebp - 0x1e], 0
jne 0x7c795a
test byte [ebp - 0x14], 0xf0
jne 0x7c76dc
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
movzx edx, byte [ebp - 0x17]
movzx eax, byte [ebp - 0x18]
add edx, eax
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
mov edx, eax
movzx ecx, byte [ebp - 0x17]
shr edx, cl
movzx eax, word [ebp - 0x16]
add edx, eax
mov eax, dword [ebx + 0x44]
call fcn.007c5e84
mov dword [ebp - 0x14], eax
movzx eax, byte [ebp - 0x17]
movzx edx, byte [ebp - 0x13]
add eax, edx
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 0x18]
jbe 0x7c76c6
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xc]
call fcn.007c8c90
test al, al
jne 0x7c7676
mov byte [ebp - 0x1e], 1
cmp byte [ebp - 0x1e], 0
jne 0x7c795a
movzx edx, byte [ebp - 0x17]
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
movzx edx, byte [ebp - 0x13]
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
movzx eax, byte [ebp - 0x14]
test al, 0x40
jbe 0x7c7707
mov eax, dword [ebx + 4]
mov edx, 0x7c7cf8
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp case.0x7c6c80.29
movzx edx, word [ebp - 0x12]
mov dword [ebx + 0x38], edx
and eax, 0xf
mov dword [ebx + 0x3c], eax
mov byte [ebx + 8], 0x15
jmp case.0x7c6c80.29
cmp dword [ebx + 0x3c], 0
jbe 0x7c7752
mov edx, dword [ebx + 0x3c]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
call fcn.007c8c54
test al, al
je 0x7c795a
mov edx, dword [ebx + 0x3c]
mov eax, dword [ebp - 0xc]
call fcn.007c18c8
add dword [ebx + 0x38], eax
mov edx, dword [ebx + 0x3c]
mov eax, dword [ebp - 0xc]
call fcn.007c18d8
mov eax, dword [ebx + 0x2c]
add eax, esi
mov edx, dword [ebp - 0xc]
sub eax, dword [edx + 0x10]
cmp eax, dword [ebx + 0x38]
jae 0x7c7778
mov eax, dword [ebx + 4]
mov edx, 0x7c7d28
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp case.0x7c6c80.29
mov byte [ebx + 8], 0x16
jmp case.0x7c6c80.29
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x7c795a
mov edi, esi
sub edi, eax
mov ecx, dword [ebx + 0x38]
cmp edi, ecx
jae 0x7c77d2
sub ecx, edi
mov edi, ecx
cmp edi, dword [ebx + 0x30]
jbe 0x7c77b8
sub edi, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x28]
sub ecx, edi
mov edx, dword [ebx + 0x34]
mov eax, dword [ebp - 0x1c]
call fcn.007c1708
jmp 0x7c77c8
mov ecx, dword [ebx + 0x30]
sub ecx, edi
mov edx, dword [ebx + 0x34]
mov eax, dword [ebp - 0x1c]
call fcn.007c1708
cmp edi, dword [ebx + 0x78]
jbe 0x7c77f0
mov edi, dword [ebx + 0x78]
jmp 0x7c77f0
mov eax, ecx
xor edx, edx
neg eax
adc edx, 0
neg edx
mov ecx, eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x1c]
call fcn.007c1710
mov edi, dword [ebx + 0x78]
mov eax, dword [ebp - 0xc]
cmp edi, dword [eax + 0x10]
jbe 0x7c77fe
mov eax, dword [ebp - 0xc]
mov edi, dword [eax + 0x10]
mov eax, dword [ebp - 0xc]
sub dword [eax + 0x10], edi
sub dword [ebx + 0x78], edi
mov eax, dword [ebp - 0x1c]
call fcn.007c1750
mov edx, eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
call fcn.007c1764
dec edi
test edi, edi
ja 0x7c7807
cmp dword [ebx + 0x78], 0
jne case.0x7c6c80.29
mov byte [ebx + 8], 0x12
jmp case.0x7c6c80.29
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x10], 0
je 0x7c795a
movzx edx, byte [ebx + 0x78]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
call fcn.007c1764
mov eax, dword [ebp - 0xc]
dec dword [eax + 0x10]
mov byte [ebx + 8], 0x12
jmp case.0x7c6c80.29
cmp dword [ebx + 0xc], 0
jle 0x7c792d
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0xc]
mov edx, 0x20
call fcn.007c8c54
test al, al
je 0x7c795a
mov eax, dword [ebp - 0xc]
sub esi, dword [eax + 0x10]
mov eax, dword [ebx + 4]
call fcn.007c8ba4
mov edx, eax
add edx, esi
mov eax, dword [ebx + 4]
call fcn.007c8ba8
add dword [ebx + 0x1c], esi
test esi, esi
jbe 0x7c78f7
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
call fcn.007c1720
sub eax, esi
push eax
push esi
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
call fcn.007c1728
mov ecx, eax
mov edx, dword [ebx + 0x18]
mov eax, ebx
call fcn.007c6a40
mov edx, dword [ebx + 4]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
call fcn.007c1720
sub eax, esi
push eax
push esi
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
call fcn.007c1728
mov ecx, eax
mov edx, dword [ebx + 0x18]
mov eax, ebx
call fcn.007c6a40
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0xc]
mov esi, dword [eax + 0x10]
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0x14]
mov eax, ebx
call fcn.007c6a90
cmp eax, dword [ebx + 0x18]
je 0x7c7925
mov eax, dword [ebx + 4]
mov edx, 0x7c7d68
call fcn.007c87bc
mov byte [ebx + 8], 0x1b
jmp case.0x7c6c80.29
mov eax, dword [ebp - 0xc]
call fcn.007c18e4
mov byte [ebx + 8], 0x1a
jmp case.0x7c6c80.29
mov byte [ebp - 0x1d], 1
jmp 0x7c795a
mov byte [ebp - 0x1d], 0xfd
jmp 0x7c795a
mov bl, 0xfc
call fcn.004062b8
jmp 0x7c7a67
mov bl, 0xfe
call fcn.004062b8
jmp 0x7c7a67
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0xc]
call fcn.007c8c00
cmp dword [ebx + 0x28], 0
ja 0x7c797d
cmp byte [ebx + 8], 0x18
jae 0x7c799a
mov eax, dword [ebx + 4]
call fcn.007c8b98
cmp esi, eax
je 0x7c799a
mov edx, esi
mov eax, ebx
call fcn.007c6ac0
test eax, eax
je 0x7c799a
mov byte [ebx + 8], 0x1c
mov bl, 0xfc
call fcn.004062b8
jmp 0x7c7a67
mov eax, dword [ebx + 4]
call fcn.007c8b94
sub dword [ebp - 8], eax
mov eax, dword [ebx + 4]
call fcn.007c8b98
sub esi, eax
mov edi, dword [ebx + 4]
mov eax, edi
call fcn.007c8b9c
mov edx, eax
add edx, dword [ebp - 8]
mov eax, edi
call fcn.007c8ba0
mov edi, dword [ebx + 4]
mov eax, edi
call fcn.007c8ba4
mov edx, eax
add edx, esi
mov eax, edi
call fcn.007c8ba8
add dword [ebx + 0x1c], esi
cmp dword [ebx + 0xc], 0
jle 0x7c7a24
test esi, esi
jbe 0x7c7a24
mov eax, dword [ebx + 4]
call fcn.007c8bac
sub eax, esi
push eax
push esi
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x34]
mov edx, dword [ebx + 0x18]
mov eax, ebx
call fcn.007c6a40
mov edi, dword [ebx + 4]
mov dword [edi + 0x30], eax
mov eax, edi
call fcn.007c8bac
sub eax, esi
push eax
push esi
mov ecx, dword [edi + 0x34]
mov edx, dword [ebx + 0x18]
mov eax, ebx
call fcn.007c6a40
mov dword [ebx + 0x18], eax
cmp dword [ebp - 8], 0
jne 0x7c7a2e
test esi, esi
je 0x7c7a34
cmp byte [ebp - 1], 4
jne 0x7c7a3e
cmp byte [ebp - 0x1d], 0
jne 0x7c7a3e
mov byte [ebp - 0x1d], 0xfb
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7c7a63
mov eax, dword [ebp - 0xc]
call fcn.00405630
mov eax, dword [ebp - 0x1c]
call fcn.00405630
ret
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret