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

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
push ebx
mov ebx, edx
sub esp, 0x8c
mov esi, dword [ecx + 0xc]
mov ebp, dword [eax + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], esi
test ebp, ebp
jne 0x7c1c97
call fcn.007830c0
mov ebp, eax
mov eax, dword [ebx]
xor edx, edx
mov esi, dword [eax + 0x34]
mov eax, dword [eax + 0x18]
mov dword [esp + 8], esi
movsx esi, word [eax + 0x2a]
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x38]
lea ecx, [ebx - 1]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], ecx
mov dword [eax + 0x38], ecx
xor eax, eax
mov dword [esp + eax + 0x60], edx
add eax, 4
cmp eax, 0x20
jb 0x7c1cc0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], ebp
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x30]
lea edx, [eax + 1]
mov dword [esp + 0x70], eax
mov dword [esp + 0x30], edx
lea edx, [eax + 2]
add eax, 3
mov dword [esp + 0x68], edx
movzx edx, byte [edi + 0x11]
mov dword [esp + 0x78], eax
cmp dl, 0x56
je 0x7c24b0
cmp dl, 0x5a
je 0x7c2450
movzx eax, byte [edi + 0x12]
mov dword [esp + 0x64], 2
mov byte [esp + 0x10], al
movzx eax, byte [edi + 0x10]
mov byte [esp + 0x1c], al
mov eax, dword [esp + 0xc]
sub edx, 0x56
mov eax, dword [eax + 0x2c]
lea ecx, [eax + 1]
add eax, esi
and edx, 0xfd
mov dword [esp + 0x18], ecx
lea ecx, [eax + 1]
mov dword [esp + 0x24], ecx
lea ecx, [eax + 2]
mov dword [esp + 0x2c], ecx
jne 0x7c23ce
mov ebx, dword [esp + 0xc]
add eax, 3
mov dword [esp + 0x14], eax
mov dword [ebx + 0x2c], eax
movzx eax, byte [esp + 0x10]
mov dword [esp + 0x10], 0
sub eax, 0x56
test al, 0xfd
jne 0x7c1d9c
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x2c]
lea ecx, [ecx + 1]
mov dword [esp + 0x10], ecx
mov dword [eax + 0x2c], ecx
cmp byte [esp + 0x1c], 0x4c
je 0x7c2435
mov eax, dword [esp + 0x28]
xor edx, edx
test eax, eax
je 0x7c1db3
mov edx, dword [eax]
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x18]
add ecx, dword [edi + 0x4c]
mov dword [esp + 0x34], ecx
test eax, eax
je 0x7c1dcd
mov eax, dword [eax]
add ecx, eax
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x2c]
lea eax, [ecx + edx]
lea ebx, [eax + 1]
add eax, edx
mov dword [esp + 0x6c], ebx
lea ebx, [eax + 1]
add eax, edx
mov dword [esp + 0x74], ebx
lea ebx, [eax + 1]
add eax, edx
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0xc]
mov dword [ebx + 0x2c], eax
mov ebx, dword [esp + 0x28]
test ebx, ebx
setne dl
add ecx, 1
setne al
mov dword [esp + 0x1c], ecx
and edx, eax
mov byte [esp + 0x3b], dl
xor ebx, ebx
test esi, esi
jle 0x7c1e46
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x18]
sub esp, 8
lea eax, [edi + ebx]
mov edx, 0x59
push eax
mov eax, ebp
push ebx
mov ecx, dword [esp + 0x18]
add ebx, 1
call fcn.00782fd0
add esp, 0x10
cmp esi, ebx
jne 0x7c1e20
mov edi, dword [esp + 0x3c]
sub esp, 8
mov edx, 0x5b
mov eax, ebp
push dword [esp + 0x2c]
push esi
mov ecx, dword [esp + 0x28]
call fcn.00782fd0
mov edx, dword [edi + 8]
add esp, 0x10
test edx, edx
je 0x7c2420
mov ebx, dword [esp + 0x18]
sub esp, 0xc
mov esi, dword [edx]
xor ecx, ecx
add ebx, dword [edi + 0x4c]
push 0
mov eax, dword [esp + 0x1c]
call fcn.00794a90
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x18], eax
add eax, 1
mov dword [esp + 0x28], eax
mov dword [ecx + 0x2c], eax
pop eax
mov ecx, ebx
mov eax, ebp
pop edx
push esi
mov edx, 0x56
push dword [edi + 0x44]
mov dword [esp + 0x18], ebx
call fcn.00782fd0
mov edx, dword [esp + 0x4c]
mov ecx, 0xfffffff7
mov ebx, eax
mov eax, ebp
call fcn.00773750
lea ecx, [ebx + 2]
add ebx, 4
pop eax
pop edx
push ecx
mov edx, 0x10
mov eax, ebp
push ebx
call fcn.00782fd0
pop ecx
pop ebx
push 0
push 0
mov ecx, dword [esp + 0x28]
mov edx, 0xc
mov eax, ebp
call fcn.00782fd0
mov dword [esp + 0x4c], eax
pop eax
lea eax, [esi - 1]
pop edx
push eax
mov edx, 0x4d
mov eax, ebp
push dword [edi + 0x44]
mov ecx, dword [esp + 0x18]
call fcn.00782fd0
add esp, 0x10
sub esp, 8
mov edx, 0x78
mov eax, ebp
push 0
mov esi, dword [esp + 0x38]
push esi
mov ebx, dword [esp + 0x40]
mov ecx, ebx
call fcn.00782fd0
pop eax
pop edx
push esi
push dword [esp + 0x30]
mov ecx, ebx
mov edx, 0x79
mov eax, ebp
call fcn.00782fd0
pop ebx
mov ecx, dword [edi + 0x54]
mov edx, 0x34
pop eax
push esi
mov eax, ebp
push 0
call fcn.00782fd0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 8]
mov dword [esp + 0x18], esi
add esp, 0x10
test esi, esi
jne 0x7c1f78
call fcn.007830c0
mov dword [esp + 8], eax
mov dword [esp + 0x2c], ebp
mov ebx, edi
xor esi, esi
sub esp, 8
mov ebp, dword [ebx + 0x2c]
mov edx, 0x48
xor ecx, ecx
push 0
push dword [ebx + 0x34]
mov eax, dword [esp + 0x18]
call fcn.00782fd0
mov eax, dword [ebx + 0x48]
add esp, 0x10
mov edx, dword [eax + 0x14]
xor eax, eax
test edx, edx
je 0x7c1fac
mov eax, dword [edx]
cmp esi, eax
cmovl esi, eax
mov eax, dword [edi + 0x58]
test eax, eax
jne 0x7c1fe2
mov eax, dword [ebp + 0x20]
cmp eax, str.nth_value
je 0x7c2320
cmp eax, str.first_value
je 0x7c2320
test byte [ebp + 5], 0x10
je 0x7c1fe2
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
jne 0x7c2360
mov ebx, dword [ebx + 0x24]
test ebx, ebx
jne 0x7c1f80
mov ecx, dword [esp + 0xc]
mov ebp, dword [esp + 0x2c]
mov eax, dword [ecx + 0x2c]
add esi, eax
add eax, 1
mov dword [ecx + 0x2c], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x60], eax
test esi, esi
jne 0x7c2614
mov ebx, dword [esp + 0x10]
test ebx, ebx
jne 0x7c24f0
cmp byte [edi + 0x10], 0x59
movzx eax, byte [edi + 0x11]
lea esi, [esp + 0x4c]
je 0x7c23f0
cmp byte [edi + 0x12], al
jne 0x7c203b
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x7c2a00
cmp al, 0x56
je 0x7c27f0
cmp al, 0x5a
jne 0x7c23f8
sub esp, 8
mov edx, 0x25
mov eax, ebp
push 0
push 1
mov ecx, dword [esp + 0x80]
call fcn.00782fd0
pop ecx
pop ebx
push 0
push 1
mov ecx, dword [esp + 0x88]
mov edx, 0x25
mov eax, ebp
call fcn.00782fd0
add esp, 0x10
cmp byte [esp + 0x3b], 0
jne 0x7c2581
sub esp, 8
xor ecx, ecx
mov edx, 0xb
mov eax, ebp
push 0
push dword [esp + 0x2c]
call fcn.00782fd0
add esp, 0x10
mov ecx, dword [esp + 0x24]
mov eax, dword [ebp + 0x6c]
test ecx, ecx
lea edx, [eax - 1]
cmovns edx, ecx
mov ecx, dword [ebp]
cmp byte [ecx + 0x51], 0
mov ebx, edx
mov edx, 0xc13eac
jne 0x7c20ce
mov edx, dword [ebp + 0x68]
lea ecx, [ebx + ebx*4]
lea edx, [edx + ecx*4]
mov ebx, dword [esp + 0x1c]
mov dword [edx + 8], eax
test ebx, ebx
jne 0x7c2520
cmp byte [edi + 0x11], 0x56
je 0x7c2549
cmp byte [edi + 0x12], 0x58
je 0x7c2642
sub esp, 0xc
xor ecx, ecx
mov edx, 3
mov eax, esi
push 0
call fcn.007c1750
add esp, 0x10
cmp byte [edi + 0x12], 0x5a
je 0x7c2150
cmp byte [edi + 0x10], 0x59
je 0x7c2960
mov ebx, dword [esp + 0x10]
test ebx, ebx
jne 0x7c28b3
sub esp, 0xc
xor ecx, ecx
push 0
mov edx, 1
mov eax, esi
call fcn.007c1750
mov ecx, dword [esp + 0x24]
mov edx, 2
mov eax, esi
mov dword [esp], 0
call fcn.007c1750
add esp, 0x10
mov edx, dword [esp + 0x20]
mov eax, ebp
call fcn.00782e20
mov eax, dword [esp + 0xa0]
call fcn.00784540
mov ecx, dword [edi + 8]
mov dword [esp + 8], 0
test ecx, ecx
je 0x7c21bf
sub esp, 8
xor ecx, ecx
mov edx, 0x45
mov eax, ebp
push 0
push dword [esp + 0x24]
call fcn.00782fd0
mov dword [esp + 0x18], eax
add esp, 0x10
mov ecx, dword [esp + 0x3c]
mov eax, dword [ebp + 0x6c]
test ecx, ecx
lea edx, [eax - 1]
cmovns edx, ecx
mov ecx, dword [ebp]
cmp byte [ecx + 0x51], 0
mov ebx, edx
mov edx, 0xc13eac
jne 0x7c21bc
mov edx, dword [ebp + 0x68]
lea ecx, [ebx + ebx*4]
lea edx, [edx + ecx*4]
mov dword [edx + 8], eax
sub esp, 8
mov edx, 0x25
mov eax, ebp
push 0
push 0
mov ecx, dword [esp + 0x40]
call fcn.00782fd0
mov dword [esp + 0x1c], eax
add esp, 0x10
cmp byte [edi + 0x12], 0x58
je 0x7c2830
cmp byte [edi + 0x11], 0x56
je 0x7c26a0
sub esp, 0xc
xor ecx, ecx
mov edx, 3
mov eax, esi
push 0
call fcn.007c1750
mov eax, dword [ebp + 0x6c]
xor ecx, ecx
mov edx, 1
mov dword [esp], 1
mov dword [esp + 0x20], eax
mov eax, esi
call fcn.007c1750
mov ecx, dword [esp + 0x24]
mov edx, 2
mov dword [esp], 0
mov ebx, eax
mov eax, esi
call fcn.007c1750
pop esi
pop eax
push 0
push dword [esp + 0x1c]
xor ecx, ecx
mov edx, 0xb
mov eax, ebp
call fcn.00782fd0
mov eax, dword [ebp + 0x6c]
add esp, 0x10
test ebx, ebx
mov ecx, 0xc13eac
lea edx, [eax - 1]
cmovs ebx, edx
mov edx, dword [ebp]
movzx edx, byte [edx + 0x51]
test dl, dl
jne 0x7c2276
mov ecx, dword [ebp + 0x68]
lea ebx, [ebx + ebx*4]
lea ecx, [ecx + ebx*4]
mov dword [ecx + 8], eax
mov esi, dword [esp + 0xc]
lea ecx, [eax - 1]
test esi, esi
cmovns ecx, esi
mov esi, ecx
mov ecx, 0xc13eac
test dl, dl
jne 0x7c2299
mov edx, dword [ebp + 0x68]
lea ecx, [esi + esi*4]
lea ecx, [edx + ecx*4]
sub esp, 8
mov dword [ecx + 8], eax
mov edx, 0x8a
mov eax, ebp
push 0
push 0
mov ecx, dword [esp + 0x80]
call fcn.00782fd0
mov ecx, dword [edi + 8]
add esp, 0x10
test ecx, ecx
je 0x7c2310
mov eax, dword [edi + 0x58]
test eax, eax
jne 0x7c27b4
mov edi, dword [esp + 8]
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp]
test edi, edi
lea edx, [eax - 1]
cmovns edx, edi
cmp byte [ecx + 0x51], 0
mov edi, edx
mov edx, 0xc13eac
jne 0x7c22f3
mov edx, dword [ebp + 0x68]
lea ecx, [edi + edi*4]
lea edx, [edx + ecx*4]
sub esp, 8
mov dword [edx + 4], eax
mov edx, 0x41
mov eax, ebp
push 0
push 0
mov ecx, dword [esp + 0x28]
call fcn.00782fd0
add esp, 0x10
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
sub esp, 8
xor ecx, ecx
mov edx, 0x45
push 0
push dword [ebx + 0x40]
mov eax, dword [esp + 0x18]
call fcn.00782fd0
pop ecx
pop eax
push 0
mov ecx, dword [ebx + 0x40]
mov edx, 0x45
lea eax, [ecx + 1]
xor ecx, ecx
push eax
mov eax, dword [esp + 0x18]
call fcn.00782fd0
add esp, 0x10
jmp 0x7c1fd1
sub esp, 8
mov edx, 0x8a
push 0
push 0
mov ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.00782fd0
pop eax
pop edx
push 0
mov eax, dword [ebx + 0x40]
xor ecx, ecx
mov edx, 0x45
add eax, 1
push eax
mov eax, ebp
call fcn.00782fd0
add esp, 0x10
jmp 0x7c1fe2
cmp byte [esp + 0x10], 0x58
je 0x7c2b6c
mov dword [esp + 0x64], 1
lea esi, [esi]
nop
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x2c]
lea ecx, [eax + 1]
add eax, esi
lea ebx, [eax + 1]
add eax, 2
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x14], 0
mov dword [eax + 0x2c], ebx
jmp 0x7c1d77
cmp al, 0x56
jne 0x7c2043
sub esp, 8
mov edx, 0x25
mov eax, ebp
push 0
push 1
mov ecx, dword [esp + 0x78]
call fcn.00782fd0
add esp, 0x10
jmp 0x7c204b
mov dword [esp + 0x18], 0
mov dword [esp + 0x3c], 0
jmp 0x7c1f14
mov byte [esp + 0x3b], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x34], 0
jmp 0x7c1e12
movzx eax, byte [edi + 0x12]
mov byte [esp + 0x10], al
movzx eax, byte [edi + 0x10]
mov byte [esp + 0x1c], al
mov eax, dword [edi + 0x58]
test eax, eax
jne 0x7c23b0
mov ecx, edi
jmp 0x7c2486
cmp eax, 0xbf934c
je 0x7c23b0
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x7c2398
mov eax, dword [ecx + 0x2c]
mov eax, dword [eax + 0x20]
cmp eax, str.nth_value
sete dl
cmp eax, str.first_value
sete bl
or edx, ebx
cmp eax, str.lead
sete bl
or dl, bl
je 0x7c2470
jmp 0x7c23b0
movzx eax, byte [edi + 0x10]
mov byte [esp + 0x1c], al
cmp al, 0x59
jne 0x7c2880
movzx eax, byte [edi + 0x12]
mov byte [esp + 0x10], al
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, esi
mov dword [esp + 0x18], edx
lea ecx, [eax + 1]
lea edx, [eax + 2]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], edx
jmp 0x7c1d69
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov edx, dword [edi + 0x1c]
mov ecx, ebx
mov eax, esi
call fcn.007bfab0
xor ecx, ecx
cmp byte [edi + 0x10], 0x59
mov edx, ebx
sete cl
mov eax, esi
lea ecx, [ecx + ecx*2 + 1]
call fcn.007838b0
jmp 0x7c2018
sub esp, 8
push dword [esp + 0x28]
push dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
call fcn.00794b10
add esp, 0x10
cmp byte [edi + 0x11], 0x56
jne 0x7c20e7
sub esp, 0xc
xor ecx, ecx
mov edx, 3
mov eax, esi
push 0
call fcn.007c1750
add esp, 0x10
cmp byte [edi + 0x12], 0x5a
je 0x7c2150
cmp byte [edi + 0x10], 0x59
je 0x7c2b0c
sub esp, 0xc
push 0
mov ecx, dword [esp + 0x20]
jmp 0x7c212a
sub esp, 8
mov edx, 0x4d
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
sub eax, 1
push eax
mov eax, ebp
push dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
call fcn.00782fd0
pop eax
mov eax, dword [ebx]
pop edx
mov edx, 0x4d
mov dword [esp + 0x10], eax
sub eax, 1
push eax
mov eax, ebp
push dword [esp + 0x78]
mov ecx, dword [esp + 0x2c]
call fcn.00782fd0
pop ecx
pop eax
mov edx, 0x4d
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
sub eax, 1
push eax
mov eax, ebp
push dword [esp + 0x80]
mov ecx, dword [esp + 0x2c]
call fcn.00782fd0
pop eax
mov eax, dword [ebx]
pop edx
mov edx, 0x4d
mov dword [esp + 0x10], eax
sub eax, 1
push eax
mov eax, ebp
push dword [esp + 0x88]
mov ecx, dword [esp + 0x2c]
call fcn.00782fd0
add esp, 0x10
jmp 0x7c208c
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
mov edx, dword [edi + 0x18]
mov ecx, ebx
mov eax, esi
call fcn.007bfab0
xor ecx, ecx
cmp byte [edi + 0x10], 0x59
mov edx, ebx
sete cl
mov eax, esi
lea ecx, [ecx + ecx*2]
call fcn.007838b0
jmp 0x7c200c
sub esp, 0xc
movzx ebx, word [edi + 0x10]
mov edx, 3
mov eax, esi
push 0
mov ecx, dword [esp + 0x20]
call fcn.007c1750
add esp, 0x10
cmp bx, 0x5859
jne 0x7c2123
sub esp, 0xc
mov edx, 2
mov eax, esi
push 0
mov ecx, dword [esp + 0x24]
call fcn.007c1750
xor ecx, ecx
mov edx, 1
mov eax, esi
mov dword [esp], 0
call fcn.007c1750
add esp, 0x10
jmp 0x7c2150
sub esp, 0xc
xor ecx, ecx
mov edx, 3
mov eax, esi
push 0
call fcn.007c1750
add esp, 0x10
cmp byte [edi + 0x10], 0x59
je 0x7c2ab0
mov eax, dword [ebp + 0x6c]
cmp byte [edi + 0x12], 0x5a
mov dword [esp + 0x1c], eax
je 0x7c2925
sub esp, 0xc
mov edx, 1
mov eax, esi
push 1
mov ecx, dword [esp + 0x20]
call fcn.007c1750
mov dword [esp], 1
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], eax
mov edx, 2
mov eax, esi
call fcn.007c1750
add esp, 0x10
mov ebx, eax
sub esp, 8
xor ecx, ecx
mov edx, 0xb
mov eax, ebp
push 0
push dword [esp + 0x28]
call fcn.00782fd0
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp]
add esp, 0x10
mov ecx, eax
sub eax, 1
test ebx, ebx
cmovs ebx, eax
cmp byte [edx + 0x51], 0
mov eax, 0xc13eac
jne 0x7c2744
mov eax, dword [ebp + 0x68]
lea edx, [ebx + ebx*4]
lea eax, [eax + edx*4]
sub esp, 0xc
mov dword [eax + 8], ecx
mov ebx, ecx
mov edx, 1
push 1
xor ecx, ecx
mov eax, esi
call fcn.007c1750
xor ecx, ecx
mov dword [esp + 0x24], eax
pop eax
mov eax, ebp
pop edx
push 0
mov edx, 0xb
push ebx
call fcn.00782fd0
add esp, 0x10
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp]
lea ecx, [eax - 1]
test esi, esi
cmovs esi, ecx
movzx edx, byte [edx + 0x51]
mov ebx, esi
test dl, dl
jne 0x7c2950
mov esi, dword [ebp + 0x68]
lea ebx, [ebx + ebx*4]
mov dword [esi + ebx*4 + 8], eax
mov ebx, dword [esp + 0x14]
test ebx, ebx
cmovns ecx, ebx
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*4]
jmp 0x7c2276
sub esp, 8
mov ecx, 1
mov edx, 0x45
push 0
push eax
mov eax, ebp
call fcn.00782fd0
pop eax
pop edx
push 0
push dword [edi + 0x5c]
xor ecx, ecx
mov edx, 0x45
mov eax, ebp
call fcn.00782fd0
add esp, 0x10
jmp 0x7c22cb
cmp byte [edi + 0x10], 0x59
je 0x7c23f8
mov eax, dword [esp + 0x10]
test eax, eax
je 0x7c23f8
sub esp, 8
mov edx, 0x6a
mov eax, ebp
mov ecx, dword [esp + 0x1c]
push ecx
push dword [esp + 0x1c]
call fcn.00782fd0
movzx eax, byte [edi + 0x11]
add esp, 0x10
jmp 0x7c2043
sub esp, 0xc
movzx ebx, word [edi + 0x10]
mov edx, 3
mov eax, esi
push 0
mov ecx, dword [esp + 0x20]
call fcn.007c1750
add esp, 0x10
cmp bx, 0x5859
je 0x7c2aef
sub esp, 0xc
mov edx, 1
xor ecx, ecx
mov eax, esi
push 0
call fcn.007c1750
mov edx, dword [ebp]
mov eax, dword [ebp + 0x6c]
add esp, 0x10
movzx edx, byte [edx + 0x51]
jmp 0x7c2279
mov eax, dword [esp + 0xc]
mov edx, dword [edi + 0x18]
mov eax, dword [eax]
call fcn.00796860
test eax, eax
je 0x7c289a
mov dword [esp + 0x64], 1
movzx eax, byte [edi + 0x12]
movzx edx, byte [edi + 0x11]
mov byte [esp + 0x10], al
movzx eax, byte [edi + 0x10]
mov byte [esp + 0x1c], al
jmp 0x7c1d3c
sub esp, 8
mov edx, 0x30
mov eax, ebp
push 1
push 0
mov ecx, dword [esp + 0x20]
call fcn.00782fd0
xor ecx, ecx
mov edx, 1
mov dword [esp], 0
mov ebx, eax
mov eax, esi
call fcn.007c1750
mov ecx, dword [esp + 0x24]
mov edx, 2
mov eax, esi
mov dword [esp], 0
call fcn.007c1750
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp]
add esp, 0x10
test ebx, ebx
lea edx, [eax - 1]
cmovs ebx, edx
cmp byte [ecx + 0x51], 0
mov edx, 0xc13eac
jne 0x7c291d
mov edx, dword [ebp + 0x68]
lea ecx, [ebx + ebx*4]
lea edx, [edx + ecx*4]
mov dword [edx + 8], eax
jmp 0x7c2150
sub esp, 0xc
mov edx, 1
mov eax, esi
push 1
mov ecx, dword [esp + 0x24]
call fcn.007c1750
mov dword [esp], 1
xor ecx, ecx
mov dword [esp + 0x20], eax
jmp 0x7c26f5
mov dword [0xc13eb4], eax
mov ecx, 0xc13eac
jmp 0x7c2276
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x7c2123
mov eax, dword [ebp + 0x6c]
sub esp, 4
mov edx, 0x39
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x10], ecx
lea ebx, [ecx - 1]
mov dword [eax + 0x38], ebx
mov eax, esi
push ebx
push dword [esp + 0x80]
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x80]
call fcn.00783c60
xor ecx, ecx
mov edx, 1
mov eax, esi
mov dword [esp], 0
call fcn.007c1750
mov dword [esp], 0
mov ecx, dword [esp + 0x24]
mov edx, 2
mov eax, esi
call fcn.007c1750
pop eax
pop edx
push 0
push dword [esp + 0x14]
xor ecx, ecx
mov edx, 0xb
mov eax, ebp
call fcn.00782fd0
mov edx, ebx
mov eax, ebp
call fcn.00782e20
add esp, 0x10
jmp 0x7c2150
xor edx, edx
cmp al, 0x56
mov eax, ebp
sete dl
sub esp, 8
push dword [esp + 0x18]
lea edx, [edx + edx + 0x37]
push 0
mov ecx, dword [esp + 0x24]
call fcn.00782fd0
mov edx, dword [esp + 0x60]
xor ecx, ecx
mov ebx, eax
mov eax, dword [esp + 0x5c]
call fcn.00783a60
pop eax
pop edx
push 0
push 1
mov ecx, dword [esp + 0x80]
mov edx, 0x25
mov eax, ebp
call fcn.00782fd0
mov eax, esi
call fcn.007c0fc0
pop ecx
pop eax
push 0
push 0
mov ecx, dword [esp + 0x80]
mov edx, 0x8a
mov eax, ebp
call fcn.00782fd0
pop eax
pop edx
push 0
push dword [esp + 0x2c]
xor ecx, ecx
mov edx, 0xb
mov eax, ebp
call fcn.00782fd0
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp]
add esp, 0x10
test ebx, ebx
lea edx, [eax - 1]
cmovs ebx, edx
cmp byte [ecx + 0x51], 0
mov edx, 0xc13eac
jne 0x7c2aa4
mov edx, dword [ebp + 0x68]
lea ecx, [ebx + ebx*4]
lea edx, [edx + ecx*4]
mov dword [edx + 8], eax
movzx eax, byte [edi + 0x11]
jmp 0x7c203b
mov eax, dword [ebp + 0x6c]
sub esp, 0xc
mov edx, 2
mov dword [esp + 0x28], eax
mov eax, esi
push 1
mov ecx, dword [esp + 0x24]
call fcn.007c1750
xor ecx, ecx
mov edx, 1
mov dword [esp], 1
mov ebx, eax
mov eax, esi
call fcn.007c1750
mov dword [esp + 0x20], eax
add esp, 0x10
jmp 0x7c2706
sub esp, 0xc
mov edx, 2
mov eax, esi
push 0
mov ecx, dword [esp + 0x24]
call fcn.007c1750
add esp, 0x10
jmp 0x7c2857
mov eax, dword [esp + 0xc]
sub esp, 4
mov edx, dword [eax + 0x38]
lea ebx, [edx - 1]
mov edx, 0x39
mov dword [eax + 0x38], ebx
mov eax, dword [ebp + 0x6c]
mov dword [esp + 0xc], eax
mov eax, esi
push ebx
push dword [esp + 0x80]
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x80]
call fcn.00783c60
mov ecx, dword [esp + 0x24]
mov edx, 2
mov eax, esi
mov dword [esp], 0
call fcn.007c1750
mov dword [esp], 0
xor ecx, ecx
mov edx, 1
jmp 0x7c29cb
cmp byte [esp + 0x1c], 0x59
je 0x7c23b0
mov eax, dword [esp + 0xc]
mov edx, dword [edi + 0x1c]
mov eax, dword [eax]
call fcn.00796860
test eax, eax
je 0x7c289a
mov dword [esp + 0x64], 3
jmp 0x7c289a