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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebp, dword [eax + 8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], edx
movzx eax, byte [eax]
mov dword [esp + 4], ecx
mov byte [esp + 0x1c], al
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x64]
test eax, eax
je 0x7c36e0
mov eax, dword [esp + 0x64]
movzx eax, byte [eax + 1]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
test eax, eax
je 0x7c32a0
mov eax, dword [esp + 0x60]
mov edx, dword [eax]
test edx, edx
je 0x7c32a0
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov edi, dword [eax + 0x1c]
mov eax, dword [esp + 0x68]
test esi, esi
sete cl
mov ebx, dword [eax + 8]
mov eax, dword [esp + 8]
mov esi, dword [edi]
mov eax, dword [eax + 0x2c]
test ebx, ebx
jne 0x7c32f6
mov ebx, dword [edx]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x18], ebx
movzx ebx, byte [edx + 0x20]
mov edx, ebx
mov byte [esp + 0x24], bl
and edx, 1
cmp dl, 1
adc dword [esp + 0x18], 0
mov ebx, dword [esp + 0x18]
add eax, ebx
mov edx, dword [esp + 0x68]
lea ebx, [eax + 1]
add eax, esi
mov dword [edx + 8], ebx
mov edx, dword [esp + 8]
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x68]
mov dword [eax + 0xc], esi
mov eax, dword [esp + 4]
test eax, eax
js 0x7c3325
test esi, esi
jle 0x7c3272
xor edi, edi
lea esi, [esi]
nop
sub esp, 8
lea eax, [edi + ebx]
mov edx, 0x59
push eax
mov eax, ebp
push edi
mov ecx, dword [esp + 0x14]
add edi, 1
call fcn.00782fd0
add esp, 0x10
cmp edi, esi
jne 0x7c3250
mov dword [esp + 0x28], ebx
mov edi, dword [esp + 0x10]
test edi, edi
jne 0x7c34c4
cmp byte [esp + 0x1c], 0xe
ja case.0x7c3291.0
mov eax, dword [esp + 0x14]
jmp dword [eax*4 + 0xbeecdc]
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x7c3cda
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0xc]
test edx, edx
jle 0x7c32c2
mov ecx, dword [esp + 0x6c]
mov eax, ebp
call fcn.00783890
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], 0
mov edi, dword [eax + 0x1c]
mov eax, dword [esp + 0x68]
mov ebx, dword [eax + 8]
mov eax, dword [esp + 8]
mov esi, dword [edi]
mov eax, dword [eax + 0x2c]
test ebx, ebx
je 0x7c3aa0
mov dword [esp + 0x60], 0
mov ecx, 1
lea edx, [ebx + esi]
mov dword [esp + 0x18], 0
cmp edx, eax
jle 0x7c3232
mov edx, dword [esp + 8]
add eax, esi
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x68]
mov dword [eax + 0xc], esi
mov eax, dword [esp + 4]
test eax, eax
jns 0x7c3245
mov eax, dword [esp + 0x14]
cmp eax, 3
je 0x7c34b4
sub eax, 9
cmp eax, 1
setbe dl
cmp dword [esp + 0x14], 0xd
sete al
or edx, eax
mov eax, dword [esp + 0x60]
mov byte [esp + 4], dl
test eax, eax
je 0x7c3600
test cl, cl
je 0x7c3600
movzx eax, byte [esp + 0x1c]
and eax, 0xfffffffd
cmp al, 0xc
je 0x7c3600
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x60]
or byte [esp + 4], 0xc
mov ecx, dword [ecx]
mov eax, dword [eax + 4]
mov edx, dword [ecx]
mov dword [esp + 0x24], edx
cmp eax, edx
jge 0x7c33c7
lea edx, [eax + eax*4 + 5]
mov dword [esp + 0x28], ebp
lea edx, [ecx + edx*4]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x24], esi
sub ecx, eax
xor eax, eax
mov ebp, ecx
movzx ecx, word [edx]
test ecx, ecx
je 0x7c33b5
lea ecx, [ecx + ecx*4 - 5]
lea esi, [eax + 1]
mov word [edi + ecx*4 + 0x14], si
add eax, 1
add edx, 0x14
cmp ebp, eax
jne 0x7c33a2
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
test esi, esi
jle 0x7c3d61
mov dword [esp + 0x28], ebx
lea edx, [edi + 0x14]
mov ecx, esi
xor eax, eax
lea esi, [esi]
cmp word [edx], 0
je 0x7c33f1
mov dword [esp + 0x28], 0
sub ecx, 1
add eax, 1
add edx, 0x14
cmp eax, esi
jne 0x7c33e0
movzx eax, byte [esp + 4]
mov dword [esp + 0x38], ebx
mov byte [esp + 0x3c], al
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
test eax, eax
je 0x7c3b9b
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x7c3b9b
mov esi, dword [esp + 0x60]
lea eax, [esp + 0x38]
mov dword [esp + 0x28], 0
mov dword [esi + 0x24], eax
mov esi, ecx
jmp 0x7c3276
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0x13]
test al, al
je 0x7c3ba2
mov ecx, dword [esp + 8]
sub eax, 1
mov byte [ecx + 0x13], al
movzx eax, al
mov edi, dword [ecx + eax*4 + 0x94]
sub esp, 8
mov ecx, ebx
mov edx, 0x5b
mov eax, ebp
push edi
push esi
call fcn.00782fd0
add esp, 0xc
mov edx, 0x83
mov eax, ebp
push esi
push ebx
push edi
mov ecx, dword [esp + 0x30]
call fcn.00783160
add esp, 0x10
test edi, edi
je case.0x7c3291.0
mov eax, dword [esp + 8]
mov edx, edi
call fcn.0076e4a0
nop
mov ebx, dword [esp + 0x60]
test ebx, ebx
je case.0x7c3a6e.0
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], ebx
test edx, edx
je case.0x7c3a6e.3
mov eax, dword [esp + 0x64]
movzx eax, byte [eax + 1]
cmp al, 1
je 0x7c39d3
cmp al, 2
jne 0x7c3a25
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x2c]
lea edx, [eax + 1]
add eax, esi
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], edx
lea edx, [ebp + 0x68]
mov ecx, dword [eax + 8]
mov eax, dword [ebp]
call fcn.00773790
mov eax, dword [esp + 0x64]
mov edx, dword [eax + 8]
test edx, edx
js 0x7c3710
mov ecx, dword [ebp]
mov eax, 0xc13eac
cmp byte [ecx + 0x51], 0
jne 0x7c3527
mov eax, dword [ebp + 0x68]
lea edx, [edx + edx*4]
lea eax, [eax + edx*4]
mov ecx, dword [esp + 4]
mov byte [eax], 0x48
xor edi, edi
mov dword [eax + 4], 1
mov dword [eax + 8], ecx
mov eax, dword [ebp + 0x6c]
add eax, esi
mov dword [esp + 0x2c], eax
lea eax, [esi - 1]
mov dword [esp + 0x10], eax
test esi, esi
jle 0x7c3a79
mov dword [esp + 0x24], esi
jmp 0x7c35b3
sub esp, 8
mov edx, 0x34
push eax
mov eax, ebp
push dword [esp + 0x38]
call fcn.00782fd0
add esp, 0x10
sub esp, 0xc
mov eax, ebp
mov ecx, esi
mov edx, 0xffffffff
push 0xfffffffffffffffe
call fcn.00774970
mov eax, dword [ebp + 0x6c]
add esp, 0x10
test eax, eax
jle 0x7c35a6
mov edx, dword [ebp + 0x68]
lea eax, [eax + eax*4]
mov ecx, 0x80
lea eax, [edx + eax*4]
mov word [eax - 0x12], cx
add edi, 1
cmp edi, dword [esp + 0x24]
je 0x7c3a75
mov esi, dword [esp + 0xc]
lea eax, [edi + edi*4]
shl eax, 2
add eax, dword [esi + 0x1c]
mov edx, dword [eax + 4]
mov eax, dword [esp + 8]
call fcn.00793eb0
lea ecx, [ebx + edi]
mov esi, eax
mov eax, dword [esp + 4]
add eax, edi
cmp dword [esp + 0x10], edi
jg 0x7c3560
sub esp, 8
mov edx, 0x35
push eax
mov eax, ebp
push dword [esp + 0x78]
call fcn.00782fd0
add esp, 0x10
jmp 0x7c3577
movzx eax, byte [esp + 4]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], ebx
mov byte [esp + 0x3c], al
sub esp, 8
mov ecx, ebx
mov edx, edi
movzx eax, byte [esp + 0xc]
push eax
push 0
mov eax, dword [esp + 0x18]
call fcn.007c08f0
add esp, 0x10
jmp 0x7c3276
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0x13]
test al, al
je 0x7c3b63
mov ecx, dword [esp + 8]
sub eax, 1
mov byte [ecx + 0x13], al
movzx eax, al
mov edi, dword [ecx + eax*4 + 0x94]
mov eax, dword [esp + 0x68]
sub esp, 8
mov ecx, ebx
mov edx, 0x5b
mov eax, dword [eax + 0x10]
mov dword [esp + 0xc], eax
mov eax, ebp
push edi
push esi
call fcn.00782fd0
mov ecx, dword [esp + 0x14]
mov dword [esp], esi
mov edx, eax
mov eax, ebp
call fcn.00774970
add esp, 0xc
mov edx, 0x83
mov eax, ebp
push esi
push ebx
push edi
mov ecx, dword [esp + 0x30]
call fcn.00783160
add esp, 0x10
test edi, edi
je case.0x7c3a6e.0
mov eax, dword [esp + 8]
mov edx, edi
call fcn.0076e4a0
lea esi, [esi]
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 8]
test ecx, ecx
je case.0x7c39fc.0
sub esp, 8
mov edx, 0x3b
mov eax, ebp
push 0
push dword [esp + 0x7c]
call fcn.00782fd0
add esp, 0x10
jmp case.0x7c39fc.0
mov eax, dword [esp + 0x60]
test eax, eax
je 0x7c32ac
mov eax, dword [esp + 0x60]
mov edx, dword [eax]
test edx, edx
je 0x7c32ac
mov dword [esp + 0x10], 0
jmp 0x7c31d2
mov eax, dword [ebp + 0x6c]
lea edx, [eax - 1]
jmp 0x7c3510
mov eax, dword [esp + 0x60]
test eax, eax
je case.0x7c3a6e.11
push dword [esp + 0x18]
push esi
push dword [esp + 0x30]
push ebx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x18]
call fcn.007c2ba0
add esp, 0x10
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x7c372c
jmp case.0x7c3a6e.0
sub esp, 8
mov edx, 0x84
mov eax, ebp
push esi
push ebx
mov ecx, dword [esp + 0x30]
call fcn.00782fd0
add esp, 0x10
jmp case.0x7c3291.0
mov eax, dword [esp + 0x68]
mov edi, dword [eax + 0x14]
mov eax, dword [edi]
mov dword [esp + 4], eax
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0x13]
test al, al
je 0x7c3bb8
mov ecx, dword [esp + 8]
sub eax, 1
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x94]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 4]
lea eax, [ecx + 2]
mov dword [esp + 0x18], eax
mov edx, eax
mov eax, dword [esp + 8]
call fcn.0076e4d0
mov ecx, dword [esp + 4]
mov dword [esp + 0x10], eax
add ecx, eax
cmp dword [esp + 0x14], 8
lea eax, [ecx + 1]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], eax
je 0x7c3c3e
sub esp, 8
mov ecx, ebx
mov edx, 0x5b
mov eax, ebp
push dword [esp + 0x2c]
push esi
call fcn.00782fd0
add esp, 0x10
mov ecx, dword [esp + 4]
mov dword [esp + 0x14], 0
test ecx, ecx
jle 0x7c3d0c
add edi, 0x14
xor esi, esi
lea esi, [esi]
movzx eax, word [edi]
sub esp, 8
mov edx, 0x4e
add edi, 0x14
push 0
lea ecx, [ebx + eax - 1]
mov eax, dword [esp + 0x1c]
add eax, esi
add esi, 1
push eax
mov eax, ebp
call fcn.00782fd0
add esp, 0x10
cmp dword [esp + 4], esi
jg 0x7c3820
sub esp, 8
mov edx, 0x77
mov eax, ebp
push 0
push dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
call fcn.00782fd0
pop esi
pop edi
mov edx, 0x5b
mov edi, dword [esp + 0x24]
mov eax, ebp
push edi
mov esi, dword [esp + 0x24]
push esi
mov ebx, dword [esp + 0x20]
mov ecx, ebx
call fcn.00782fd0
add esp, 0xc
mov edx, 0x83
mov eax, ebp
push esi
push ebx
push edi
mov ecx, dword [esp + 0x30]
call fcn.00783160
add esp, 0x10
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x7c38c6
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp]
lea edx, [eax - 1]
cmovns edx, ebx
cmp byte [ecx + 0x51], 0
mov ebx, edx
mov edx, 0xc13eac
je 0x7c3b3f
mov dword [edx + 8], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x7c38d9
mov edx, eax
mov eax, dword [esp + 8]
call fcn.0076e4a0
cmp dword [esp + 0x18], 1
je 0x7c3bd2
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x18]
cmp ebx, dword [eax + 0x1c]
jle case.0x7c3291.0
mov dword [eax + 0x1c], ebx
mov ebx, dword [esp + 0x10]
mov dword [eax + 0x20], ebx
jmp case.0x7c3291.0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 8]
lea edi, [ecx + 1]
mov edx, edi
call fcn.0076e4d0
mov ecx, dword [esp + 0x18]
sub esp, 8
mov edx, 0x5b
mov dword [esp + 0xc], eax
add ecx, eax
mov eax, ebp
mov dword [esp + 0x18], ecx
push ecx
mov ecx, ebx
push esi
call fcn.00782fd0
add esp, 0x10
cmp dword [esp + 0x14], 6
je 0x7c3bf6
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x7c3aba
push dword [esp + 0x18]
push 1
push dword [esp + 0x30]
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x18]
call fcn.007c2ba0
add esp, 0x10
cmp edi, 1
je 0x7c3be4
mov eax, dword [esp + 8]
cmp edi, dword [eax + 0x1c]
jle case.0x7c3291.0
mov ebx, dword [esp + 4]
mov dword [eax + 0x1c], edi
mov dword [eax + 0x20], ebx
jmp case.0x7c3291.0
mov edi, dword [esp + 0x60]
test edi, edi
jne 0x7c372c
cmp dword [esp + 0x14], 0xd
je 0x7c3b79
sub esp, 8
mov ecx, ebx
mov edx, 0x50
mov eax, ebp
push 0
push esi
call fcn.00782fd0
add esp, 0x10
jmp case.0x7c3a6e.0
mov eax, dword [esp + 0x64]
lea edx, [ebp + 0x68]
mov ecx, dword [eax + 8]
mov eax, dword [ebp]
call fcn.00773790
mov edi, dword [esp + 0x60]
test edi, edi
je 0x7c3a49
cmp byte [esp + 0x1c], 0xe
ja case.0x7c39fc.0
mov eax, dword [esp + 0x14]
jmp dword [eax*4 + 0xbeed18]
sub esp, 8
mov ecx, 1
mov edx, 0x45
mov eax, ebp
push 0
push dword [esp + 0x2c]
call fcn.00782fd0
add esp, 0x10
jmp case.0x7c3291.0
mov eax, dword [esp + 0x64]
sub esp, 8
mov edx, dword [eax + 4]
push ebx
push esi
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x18]
call fcn.00784470
add esp, 0x10
mov edi, dword [esp + 0x60]
test edi, edi
jne 0x7c39ed
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0xc]
test edx, edx
jle 0x7c3a5f
mov ecx, dword [esp + 0x6c]
mov eax, ebp
call fcn.00783890
cmp byte [esp + 0x1c], 0xe
ja case.0x7c3a6e.0
mov eax, dword [esp + 0x14]
jmp dword [eax*4 + 0xbeed54]
mov esi, dword [esp + 0x24]
sub esp, 8
mov ecx, ebx
mov edx, 0x4d
mov eax, ebp
push dword [esp + 0x18]
push dword [esp + 0x10]
call fcn.00782fd0
add esp, 0x10
jmp 0x7c39e5
mov dword [esp + 0x18], 0
mov ecx, 1
mov dword [esp + 0x60], 0
jmp 0x7c321f
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0x13]
test al, al
je 0x7c3b4d
mov ebx, dword [esp + 8]
sub eax, 1
mov byte [ebx + 0x13], al
movzx eax, al
mov ebx, dword [ebx + eax*4 + 0x94]
sub esp, 8
mov edx, 0x78
mov eax, ebp
push 0
push ebx
mov esi, dword [esp + 0x30]
mov ecx, esi
call fcn.00782fd0
pop eax
pop edx
push ebx
push dword [esp + 0x10]
mov ecx, esi
mov edx, 0x79
mov eax, ebp
call fcn.00782fd0
mov eax, dword [ebp + 0x6c]
add esp, 0x10
test eax, eax
jle 0x7c3b27
mov edx, dword [ebp + 0x68]
lea eax, [eax + eax*4]
mov ecx, 8
lea eax, [edx + eax*4]
mov word [eax - 0x12], cx
test ebx, ebx
je 0x7c3973
mov eax, dword [esp + 8]
mov edx, ebx
call fcn.0076e4a0
jmp 0x7c3973
mov edx, dword [ebp + 0x68]
lea ecx, [ebx + ebx*4]
lea edx, [edx + ecx*4]
jmp 0x7c38c3
mov eax, dword [esp + 8]
mov ebx, dword [eax + 0x2c]
mov dword [esp + 0x10], ebx
add ebx, 1
mov dword [eax + 0x2c], ebx
jmp 0x7c3ade
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x2c]
lea edi, [ecx + 1]
mov dword [esp + 4], ecx
mov dword [eax + 0x2c], edi
jmp 0x7c3655
mov eax, dword [esp + 0x68]
sub esp, 8
mov edx, 0xe
mov ecx, dword [eax + 4]
push 0
mov eax, ebp
push 0
call fcn.00782fd0
add esp, 0x10
jmp case.0x7c3a6e.0
mov esi, ecx
jmp 0x7c3611
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x2c]
lea edi, [ecx + 1]
mov dword [esp + 4], ecx
mov dword [eax + 0x2c], edi
jmp 0x7c3464
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x10], ecx
add ecx, 1
mov dword [esp + 0x1c], ecx
mov dword [eax + 0x2c], ecx
jmp 0x7c37b5
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
call fcn.0076e530
jmp case.0x7c3291.0
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
call fcn.0076e530
jmp case.0x7c3291.0
mov eax, dword [esp + 0x20]
sub esp, 4
mov edx, 0x1e
push 0
lea ecx, [eax + 1]
push dword [esp + 0xc]
mov eax, dword [ebp + 0x6c]
add eax, 4
push eax
mov eax, ebp
mov dword [esp + 0x24], ecx
call fcn.00783160
add esp, 0xc
mov edx, 0x83
mov eax, ebp
push esi
push ebx
push dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
call fcn.00783160
add esp, 0x10
jmp 0x7c3945
mov eax, dword [esp + 0x20]
sub esp, 8
mov edx, 0x1e
add eax, 1
mov dword [esp + 0x34], eax
mov ecx, eax
mov eax, ebp
push ebx
push 0
call fcn.00782fd0
mov dword [esp + 0x24], eax
mov ecx, eax
mov eax, dword [ebp]
add esp, 0x10
cmp byte [eax + 0x51], 0
jne 0x7c3c7f
mov edx, dword [ebp + 0x68]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
mov byte [eax + 1], 0xfd
mov dword [eax + 0x10], esi
sub esp, 8
mov ecx, ebx
mov edx, 0x5b
mov eax, ebp
push dword [esp + 0x2c]
push esi
call fcn.00782fd0
pop eax
pop edx
push 0
push dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
mov edx, 0x83
mov eax, ebp
call fcn.00782fd0
mov eax, dword [ebp + 0x6c]
add esp, 0x10
test eax, eax
jle 0x7c3cc9
mov edx, dword [ebp + 0x68]
lea eax, [eax + eax*4]
mov ecx, 0x10
lea eax, [edx + eax*4]
mov word [eax - 0x12], cx
mov eax, dword [esp + 4]
test eax, eax
jg 0x7c3818
jmp 0x7c384e
mov eax, dword [esp + 0xc]
mov dword [esp + 0x60], 0
xor ecx, ecx
mov edi, dword [eax + 0x1c]
mov eax, dword [esp + 0x68]
mov ebx, dword [eax + 8]
mov eax, dword [esp + 8]
mov esi, dword [edi]
mov dword [esp + 0x18], ebx
mov eax, dword [eax + 0x2c]
test ebx, ebx
je 0x7c321f
jmp 0x7c32f6
sub esp, 8
mov edx, 0x77
mov eax, ebp
push 0
push dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
call fcn.00782fd0
pop ecx
pop ebx
mov edx, 0x5b
mov edi, dword [esp + 0x24]
mov eax, ebp
push edi
mov esi, dword [esp + 0x24]
push esi
mov ebx, dword [esp + 0x20]
mov ecx, ebx
call fcn.00782fd0
add esp, 0xc
mov edx, 0x83
mov eax, ebp
push esi
push ebx
push edi
mov ecx, dword [esp + 0x30]
call fcn.00783160
add esp, 0x10
jmp 0x7c38c6
mov dword [esp + 0x28], ebx
mov ecx, esi
jmp 0x7c33fb