Function at 0x784a28
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffda0
xor eax, eax
xor edx, edx
push ebx
push esi
push edi
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp + 8]
xor eax, eax
xor edx, edx
lea edi, [ebp - 0x68]
mov esi, dword [ecx]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], edx
xor eax, eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov ebx, dword [ecx]
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp + 0x10]
xor eax, eax
xor edx, edx
mov ecx, dword [ecx]
mov dword [edi], ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], edx
xor ecx, ecx
mov dword [ebp - 0x78], ecx
xor eax, eax
mov dword [ebp - 0x7c], eax
test byte [ebp - 0x47], 8
setne dl
and edx, 1
mov dword [ebp - 0x80], edx
test byte [ebp - 0x47], 2
setne cl
and ecx, 1
xor edx, edx
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
xor eax, 1
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x20], edx
mov eax, 0xfffffffe
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
test byte [ebp - 0x48], 1
je 0x784ad2
mov edx, 1
jmp 0x784ad4
xor edx, edx
mov dword [ebp - 0x3c], edx
mov eax, dword [edi]
movzx esi, byte [eax]
test esi, esi
jne 0x784af5
cmp dword [ebp - 0x70], 0
je 0x784af5
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dword [edi], eax
mov dword [ebp - 0x70], edx
mov ecx, dword [edi]
movzx esi, byte [ecx]
cmp dword [ebp + 0x34], 0
je 0x784ba7
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
mov edx, dword [eax + 0x10]
add edx, dword [ecx + 0x3c]
add edx, 0xffffff9c
cmp ebx, edx
jbe 0x784b38
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x10]
add eax, dword [edx + 0x3c]
cmp ebx, eax
jb 0x784b29
mov esi, 0x34
jmp 0x784b2e
mov esi, 0x57
mov eax, dword [ebp + 0x14]
mov dword [eax], esi
jmp 0x789696
cmp ebx, dword [ebp - 0x54]
jae 0x784b40
mov ebx, dword [ebp - 0x54]
mov eax, dword [ebp + 0x34]
mov ecx, ebx
mov edx, 0x7fffffeb
sub edx, dword [eax]
sub ecx, dword [ebp - 0x54]
cmp edx, ecx
jge 0x784b61
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x14
jmp 0x789696
mov eax, ebx
mov edx, dword [ebp + 0x34]
sub eax, dword [ebp - 0x54]
add dword [edx], eax
cmp dword [ebp - 0x74], 0
je 0x784b9f
mov ecx, dword [ebp - 0x74]
cmp ecx, dword [ebp - 0x58]
jbe 0x784ba2
mov ecx, ebx
sub ecx, dword [ebp - 0x74]
push ecx
mov eax, dword [ebp - 0x74]
push eax
mov edx, dword [ebp - 0x58]
push edx
call sub.msvcrt.dll_memmove
mov ecx, dword [ebp - 0x74]
add esp, 0xc
sub ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x74], eax
sub ebx, ecx
jmp 0x784ba2
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0x54], ebx
jmp 0x784bc9
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp + 0x30]
add edx, dword [ecx + 0x3c]
cmp edx, dword [eax + 0x20]
jae 0x784bc9
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x34
jmp 0x789696
test esi, esi
je 0x784c5c
cmp esi, 0x5c
jne 0x784bef
mov ecx, dword [edi]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x45
jne 0x784bef
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [edi]
jmp 0x78968f
cmp dword [ebp - 0x60], 0
je 0x784c3d
cmp dword [ebp - 0x78], 0
je 0x784c19
cmp dword [ebp + 0x34], 0
jne 0x784c14
mov edx, dword [ebp + 0x30]
push edx
mov ecx, dword [edi]
push ecx
mov eax, dword [ebp - 0x78]
push eax
call fcn.00784598
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x78], edx
test byte [ebp - 0x47], 0x40
je 0x789366
mov dword [ebp - 0x78], ebx
mov ecx, dword [ebp + 0x30]
push ecx
mov eax, dword [edi]
push eax
push ebx
call fcn.00784560
add esp, 0xc
mov ebx, eax
jmp 0x789366
cmp esi, 0x5c
jne 0x784c5c
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x51
jne 0x784c5c
mov dword [ebp - 0x60], 1
inc dword [edi]
jmp 0x78968f
test byte [ebp - 0x48], 8
je 0x784d71
mov eax, dword [edi]
mov dword [ebp - 0xf4], eax
jmp 0x784c77
inc dword [edi]
mov edx, dword [edi]
movzx esi, byte [edx]
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0xc]
test byte [edx + esi], 1
jne 0x784c70
cmp esi, 0x23
jne 0x784d63
inc dword [edi]
jmp 0x784d58
mov ecx, dword [ebp + 0x30]
cmp dword [ecx + 0x84], 0
je 0x784ce2
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x1c]
cmp eax, dword [edi]
jbe 0x784cd7
mov edx, dword [ebp - 0x80]
push edx
mov ecx, dword [ebp + 0x30]
add ecx, 0x88
push ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x1c]
push edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x84]
push eax
mov edx, dword [edi]
push edx
call fcn.0079d4bc
add esp, 0x14
test eax, eax
jne 0x784cdb
xor ecx, ecx
jmp 0x784d29
mov ecx, 1
jmp 0x784d29
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp + 0x30]
sub edx, dword [eax + 0x88]
cmp edx, dword [edi]
jb 0x784d20
mov edx, dword [edi]
mov eax, dword [ebp + 0x30]
mov cl, byte [edx]
cmp cl, byte [eax + 0x8c]
jne 0x784d20
mov edx, dword [ebp + 0x30]
cmp dword [edx + 0x88], 1
je 0x784d24
mov ecx, dword [edi]
mov eax, dword [ebp + 0x30]
mov cl, byte [ecx + 1]
cmp cl, byte [eax + 0x8d]
je 0x784d24
xor ecx, ecx
jmp 0x784d29
mov ecx, 1
test ecx, ecx
je 0x784d3a
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x88]
add dword [edi], edx
jmp 0x784d63
inc dword [edi]
cmp dword [ebp - 0x80], 0
je 0x784d58
jmp 0x784d46
inc dword [edi]
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
and eax, 0xc0
cmp eax, 0x80
je 0x784d44
mov edx, dword [edi]
cmp byte [edx], 0
jne 0x784c93
mov ecx, dword [edi]
cmp ecx, dword [ebp - 0xf4]
ja 0x784ad7
cmp esi, 0x28
jne 0x784dc5
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3f
jne 0x784dc5
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x23
jne 0x784dc5
add dword [edi], 3
jmp 0x784d95
inc dword [edi]
mov edx, dword [edi]
cmp byte [edx], 0
je 0x784da7
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x29
jne 0x784d93
mov edx, dword [edi]
cmp byte [edx], 0
jne 0x78968f
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x12
jmp 0x789696
cmp esi, 0x2a
je 0x784deb
cmp esi, 0x2b
je 0x784deb
cmp esi, 0x3f
je 0x784deb
cmp esi, 0x7b
jne 0x784de7
mov eax, dword [edi]
inc eax
push eax
call fcn.00781748
pop ecx
test eax, eax
jne 0x784deb
xor edx, edx
jmp 0x784df0
mov edx, 1
mov dword [ebp - 0xa4], edx
cmp dword [ebp - 0xa4], 0
jne 0x784e34
cmp dword [ebp - 0x78], 0
je 0x784e34
cmp dword [ebp - 0x70], 0
jne 0x784e34
mov ecx, dword [ebp - 0x4c]
add dword [ebp - 0x4c], 0xffffffff
test ecx, ecx
jg 0x784e34
cmp dword [ebp + 0x34], 0
jne 0x784e2f
mov ecx, dword [ebp + 0x30]
push ecx
mov eax, dword [edi]
push eax
mov edx, dword [ebp - 0x78]
push edx
call fcn.00784598
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0x78], ecx
test byte [ebp - 0x47], 0x40
je 0x784e5e
cmp dword [ebp - 0xa4], 0
jne 0x784e5e
cmp dword [ebp - 0x70], 0
jne 0x784e5e
mov dword [ebp - 0x78], ebx
mov eax, dword [ebp + 0x30]
push eax
mov edx, dword [edi]
push edx
push ebx
call fcn.00784560
add esp, 0xc
mov ebx, eax
mov ecx, esi
cmp ecx, 0x3f
jg 0x784eac
je 0x78633b
cmp ecx, 0x29
jg 0x784e8e
je 0x784ee4
sub ecx, 1
jb 0x784ee4
sub ecx, 0x23
je 0x784f75
sub ecx, 4
je 0x78738e
jmp 0x789366
sub ecx, 0x2a
je 0x78631d
dec ecx
je 0x78632b
sub ecx, 3
je 0x784f8e
jmp 0x789366
cmp ecx, 0x5e
jg 0x784ed3
je 0x784f49
sub ecx, 0x5b
je 0x784ff9
dec ecx
je 0x788f7c
dec ecx
je 0x784fd9
jmp 0x789366
sub ecx, 0x7b
je 0x7862e8
dec ecx
je 0x784ee4
jmp 0x789366
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp - 0x1c]
mov dword [eax], edx
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp - 0x24]
mov dword [ecx], eax
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x20]
mov dword [edx], eax
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x28]
mov dword [edx], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx], ebx
mov eax, dword [ebp + 0x10]
mov edx, dword [edi]
mov dword [eax], edx
cmp dword [ebp + 0x34], 0
je 0x784f3f
mov ecx, dword [ebp + 0x34]
mov edx, ebx
mov eax, 0x7fffffeb
sub eax, dword [ecx]
sub edx, dword [ebp - 0x54]
cmp eax, edx
jge 0x784f37
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x14
jmp 0x789696
sub ebx, dword [ebp - 0x54]
mov eax, dword [ebp + 0x34]
add dword [eax], ebx
mov eax, 1
jmp 0x78969f
xor edx, edx
mov dword [ebp - 0x74], edx
test byte [ebp - 0x48], 2
je 0x784f6c
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x784f63
or ecx, 0xffffffff
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x38], ecx
mov byte [ebx], 0x1c
inc ebx
jmp 0x78968f
mov byte [ebx], 0x1b
inc ebx
jmp 0x78968f
xor eax, eax
mov dword [ebp - 0x74], eax
test byte [ebp - 0x48], 2
je 0x784f84
mov dl, 0x1a
jmp 0x784f86
mov dl, 0x19
mov byte [ebx], dl
inc ebx
jmp 0x78968f
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x784f9b
mov dword [ebp - 0x24], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x74], ebx
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
mov ecx, dword [edx + 0x20]
sub ecx, dword [eax + 0x10]
mov dword [ebp - 0x7c], ecx
test byte [ebp - 0x48], 4
je 0x784fcf
mov dl, 0xd
jmp 0x784fd1
mov dl, 0xc
mov byte [ebx], dl
inc ebx
jmp 0x78968f
mov eax, dword [ebp + 0x30]
test byte [eax + 0x63], 2
je 0x789366
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x40
jmp 0x789696
push 6
push 0x875818
mov ecx, dword [edi]
inc ecx
push ecx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x785023
mov eax, dword [edi]
add eax, 7
mov dword [ebp - 0x70], eax
mov dword [edi], str._b__w_
jmp 0x784ad7
push 6
push str._:_:__
mov edx, dword [edi]
inc edx
push edx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x78504d
mov ecx, dword [edi]
add ecx, 7
mov dword [ebp - 0x70], ecx
mov dword [edi], str._b___w_
jmp 0x784ad7
mov dword [ebp - 0x74], ebx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp + 0x30]
sub edx, dword [eax + 0x10]
mov dword [ebp - 0x7c], edx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3a
je 0x785083
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2e
je 0x785083
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3d
jne 0x7850b8
lea eax, [ebp - 0x6c]
push eax
mov edx, dword [edi]
push edx
call fcn.007843f0
add esp, 8
test eax, eax
je 0x7850b8
mov esi, dword [edi]
xor eax, eax
mov al, byte [esi + 1]
cmp eax, 0x3a
jne 0x7850a9
mov edx, 0xd
jmp 0x7850ae
mov edx, 0x1f
mov eax, dword [ebp + 0x14]
mov dword [eax], edx
jmp 0x789696
xor ecx, ecx
mov dword [ebp - 0x98], ecx
inc dword [edi]
mov ecx, dword [edi]
movzx esi, byte [ecx]
cmp esi, 0x5c
jne 0x7850f8
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x45
jne 0x7850dc
inc dword [edi]
jmp 0x7850c0
push 3
push 0x875826
mov ecx, dword [edi]
inc ecx
push ecx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x785112
add dword [edi], 3
jmp 0x7850c0
cmp dword [ebp - 0x98], 0
jne 0x785112
cmp esi, 0x5e
jne 0x785112
mov dword [ebp - 0x98], 1
jmp 0x7850c0
cmp esi, 0x5d
jne 0x785150
mov ecx, dword [ebp + 0x30]
test byte [ecx + 0x63], 2
je 0x785150
cmp dword [ebp - 0x98], 0
je 0x78512d
mov al, 0xd
jmp 0x78512f
mov al, 0x9d
mov byte [ebx], al
inc ebx
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x78513f
mov dword [ebp - 0x24], 0xffffffff
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x38], ecx
jmp 0x78968f
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x90], eax
lea edx, [ebx + 4]
xor eax, eax
mov dword [ebp - 0x8c], edx
xor edx, edx
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xb4], edx
xor ecx, ecx
mov dword [ebp - 0xb8], ecx
push 0x20
lea eax, [ebp - 0x238]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
test esi, esi
je 0x7860c2
cmp dword [ebp - 0x80], 0
je 0x7852fd
cmp esi, 0xc0
jb 0x7852fd
mov edx, dword [edi]
movzx esi, byte [edx]
cmp esi, 0xc0
jb 0x7852fd
test esi, 0x20
jne 0x7851f0
mov eax, dword [edi]
and esi, 0x1f
xor edx, edx
mov dl, byte [eax + 1]
shl esi, 6
and edx, 0x3f
or esi, edx
inc dword [edi]
jmp 0x7852fd
test esi, 0x10
jne 0x785220
mov ecx, dword [edi]
mov eax, dword [edi]
and esi, 0xf
xor edx, edx
movzx ecx, byte [ecx + 1]
and ecx, 0x3f
mov dl, byte [eax + 2]
shl ecx, 6
and edx, 0x3f
shl esi, 0xc
or esi, ecx
or esi, edx
add dword [edi], 2
jmp 0x7852fd
test esi, 8
jne 0x785260
mov ecx, dword [edi]
xor eax, eax
and esi, 7
mov edx, dword [edi]
mov al, byte [ecx + 1]
xor ecx, ecx
and eax, 0x3f
mov cl, byte [edx + 2]
shl eax, 0xc
and ecx, 0x3f
shl esi, 0x12
xor edx, edx
or esi, eax
mov eax, dword [edi]
shl ecx, 6
or esi, ecx
mov dl, byte [eax + 3]
and edx, 0x3f
or esi, edx
add dword [edi], 3
jmp 0x7852fd
test esi, 4
jne 0x7852ac
mov ecx, dword [edi]
xor eax, eax
mov edx, dword [edi]
and esi, 3
mov al, byte [ecx + 1]
xor ecx, ecx
and eax, 0x3f
mov cl, byte [edx + 2]
shl eax, 0x12
and ecx, 0x3f
shl esi, 0x18
xor edx, edx
or esi, eax
mov eax, dword [edi]
shl ecx, 0xc
or esi, ecx
mov ecx, dword [edi]
mov dl, byte [eax + 3]
xor eax, eax
and edx, 0x3f
mov al, byte [ecx + 4]
shl edx, 6
and eax, 0x3f
or esi, edx
or esi, eax
add dword [edi], 4
jmp 0x7852fd
mov edx, dword [edi]
xor ecx, ecx
and esi, 1
mov eax, dword [edi]
mov cl, byte [edx + 1]
xor edx, edx
and ecx, 0x3f
mov dl, byte [eax + 2]
shl ecx, 0x18
and edx, 0x3f
shl esi, 0x1e
xor eax, eax
or esi, ecx
mov ecx, dword [edi]
shl edx, 0x12
or esi, edx
mov al, byte [ecx + 3]
and eax, 0x3f
mov edx, dword [edi]
shl eax, 0xc
xor ecx, ecx
or esi, eax
mov eax, dword [edi]
mov cl, byte [edx + 4]
xor edx, edx
and ecx, 0x3f
mov dl, byte [eax + 5]
shl ecx, 6
and edx, 0x3f
or esi, ecx
or esi, edx
add dword [edi], 5
mov ecx, dword [ebp - 0x8c]
cmp ecx, dword [ebp - 0x94]
jbe 0x785315
mov dword [ebp - 0x90], 1
cmp dword [ebp + 0x34], 0
je 0x785346
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x94]
jbe 0x785346
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp + 0x34]
sub edx, dword [ebp - 0x94]
add dword [eax], edx
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x8c], edx
cmp dword [ebp - 0x60], 0
je 0x785375
cmp esi, 0x5c
jne 0x785b69
mov ecx, dword [edi]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x45
jne 0x785b69
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [edi]
jmp 0x786089
cmp esi, 0x5b
jne 0x78575d
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3a
je 0x7853a6
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2e
je 0x7853a6
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3d
jne 0x78575d
lea edx, [ebp - 0x6c]
push edx
mov ecx, dword [edi]
push ecx
call fcn.007843f0
add esp, 8
test eax, eax
je 0x78575d
xor eax, eax
mov dword [ebp - 0xfc], eax
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x10c], ecx
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3a
je 0x7853eb
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x1f
jmp 0x789696
add dword [edi], 2
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5e
jne 0x78540f
mov dword [ebp - 0xfc], 1
mov dword [ebp - 0x9c], 1
inc dword [edi]
mov ecx, dword [ebp - 0x6c]
sub ecx, dword [edi]
push ecx
mov ecx, dword [edi]
push ecx
call fcn.00784458
add esp, 8
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x100], 0
jge 0x78543d
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1e
jmp 0x789696
test byte [ebp - 0x48], 1
je 0x785454
cmp dword [ebp - 0x100], 2
jg 0x785454
xor edx, edx
mov dword [ebp - 0x100], edx
test byte [ebp - 0x45], 0x20
je 0x7855b2
xor ecx, ecx
mov dword [ebp - 0x110], ecx
cmp dword [ebp - 0xfc], 0
je 0x785476
mov eax, 0xe
jmp 0x785478
xor eax, eax
add eax, dword [ebp - 0x100]
mov dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x114]
cmp dword [edx*4 + 0x874508], 0
je 0x7854b5
mov ecx, dword [ebp - 0x6c]
inc ecx
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x114]
mov eax, dword [ecx*4 + 0x874508]
dec eax
mov dword [edi], eax
jmp 0x786089
mov edx, dword [ebp - 0x100]
sub edx, 8
je 0x7854cb
dec edx
je 0x7854d5
dec edx
je 0x7854e8
jmp 0x785550
mov dword [ebp - 0x110], 0xb
cmp dword [ebp - 0x110], 0
jne 0x7854e8
mov dword [ebp - 0x110], 0xc
cmp dword [ebp - 0x110], 0
jne 0x7854fb
mov dword [ebp - 0x110], 0xd
cmp dword [ebp - 0xfc], 0
je 0x785508
mov cl, 4
jmp 0x78550a
mov cl, 3
mov eax, dword [ebp - 0x8c]
mov byte [eax], cl
inc dword [ebp - 0x8c]
mov dl, byte [ebp - 0x110]
mov eax, dword [ebp - 0x8c]
mov byte [eax], dl
inc dword [ebp - 0x8c]
mov edx, dword [ebp - 0x8c]
mov byte [edx], 0
inc dword [ebp - 0x8c]
mov dword [ebp - 0xb8], 1
mov ecx, dword [ebp - 0x6c]
inc ecx
mov dword [edi], ecx
jmp 0x786089
cmp dword [ebp - 0xfc], 0
je 0x7855b2
cmp dword [ebp - 0x90], 0
jne 0x78556f
mov ecx, dword [ebp - 0x6c]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x5d
je 0x7855b2
mov edx, dword [ebp - 0x8c]
mov byte [edx], 2
inc dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x8c]
push ecx
push pe_nt_image_headers32
call fcn.0079d8a4
add esp, 8
add dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
push eax
push 0x10ffff
call fcn.0079d8a4
add esp, 8
add dword [ebp - 0x8c], eax
mov edx, dword [ebp - 0x100]
lea edx, [edx + edx*2]
mov dword [ebp - 0x100], edx
push 0x20
mov ecx, dword [ebp - 0x100]
mov eax, dword [ecx*4 + 0x874448]
add eax, dword [ebp - 0x10c]
push eax
lea edx, [ebp - 0x258]
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp - 0x100]
mov eax, dword [ecx*4 + 0x87444c]
mov dword [ebp - 0x104], eax
mov edx, dword [ebp - 0x100]
mov ecx, dword [edx*4 + 0x874450]
mov dword [ebp - 0x108], ecx
cmp dword [ebp - 0x104], 0
jl 0x785688
cmp dword [ebp - 0x108], 0
jl 0x785653
xor esi, esi
lea eax, [ebp - 0x258]
mov dword [ebp - 0x214], eax
mov edx, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x10c]
add edx, esi
mov eax, dword [ebp - 0x214]
inc esi
mov cl, byte [ecx + edx]
or byte [eax], cl
inc dword [ebp - 0x214]
cmp esi, 0x20
jb 0x78562c
jmp 0x785688
xor esi, esi
lea eax, [ebp - 0x258]
mov dword [ebp - 0x214], eax
mov edx, dword [ebp - 0x104]
mov ecx, dword [ebp - 0x10c]
add edx, esi
mov eax, dword [ebp - 0x214]
inc esi
mov cl, byte [ecx + edx]
not cl
and byte [eax], cl
inc dword [ebp - 0x214]
cmp esi, 0x20
jb 0x785661
cmp dword [ebp - 0x108], 0
jge 0x785697
neg dword [ebp - 0x108]
cmp dword [ebp - 0x108], 1
jne 0x7856a9
and byte [ebp - 0x257], 0xc3
jmp 0x7856b9
cmp dword [ebp - 0x108], 2
jne 0x7856b9
and byte [ebp - 0x24d], 0x7f
cmp dword [ebp - 0xfc], 0
je 0x785702
xor esi, esi
lea eax, [ebp - 0x238]
mov dword [ebp - 0x218], eax
lea edx, [ebp - 0x258]
mov dword [ebp - 0x214], edx
mov ecx, dword [ebp - 0x214]
mov eax, dword [ebp - 0x218]
inc esi
mov cl, byte [ecx]
not cl
or byte [eax], cl
inc dword [ebp - 0x218]
inc dword [ebp - 0x214]
cmp esi, 0x20
jb 0x7856dc
jmp 0x78573e
xor esi, esi
lea eax, [ebp - 0x238]
mov dword [ebp - 0x214], eax
lea edx, [ebp - 0x258]
mov dword [ebp - 0x218], edx
mov ecx, dword [ebp - 0x218]
mov eax, dword [ebp - 0x214]
inc esi
mov cl, byte [ecx]
or byte [eax], cl
inc dword [ebp - 0x214]
inc dword [ebp - 0x218]
cmp esi, 0x20
jb 0x78571c
mov edx, dword [ebp - 0x6c]
inc edx
mov dword [edi], edx
mov dword [ebp - 0xb0], 1
mov dword [ebp - 0xb4], 2
jmp 0x786089
cmp esi, 0x5c
jne 0x785b69
push 1
mov ecx, dword [ebp - 0x48]
push ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x40]
lea eax, [ebp - 0xe8]
push edx
mov ecx, dword [ebp + 0x14]
push ecx
push eax
push edi
call fcn.007817d8
add esp, 0x18
mov esi, eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x789696
test esi, esi
jne 0x7857a4
mov esi, dword [ebp - 0xe8]
jmp 0x785b69
cmp esi, 5
jne 0x7857b3
mov esi, 8
jmp 0x785b69
cmp esi, 0xc
jne 0x7857cb
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x47
jmp 0x789696
cmp esi, 0x1a
jne 0x785801
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x7857f0
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
jne 0x7857f0
add dword [edi], 2
jmp 0x786089
mov dword [ebp - 0x60], 1
jmp 0x786089
cmp esi, 0x19
je 0x786089
mov edx, dword [ebp + 0x30]
mov eax, esi
add eax, 0xfffffffa
mov ecx, dword [edx + 8]
mov dword [ebp - 0x118], ecx
inc dword [ebp - 0xb0]
add dword [ebp - 0xb4], 2
cmp eax, 0x1c
ja case.0x785837.6
mov al, byte [eax + 0x78583e]
jmp dword [eax*4 + 0x78585b]
mov edx, dword [edi]
mov dword [ebp - 0x70], edx
mov ecx, dword [esi*4 + 0x87447c]
dec ecx
mov dword [edi], ecx
dec dword [ebp - 0xb0]
jmp 0x786089
xor esi, esi
lea eax, [ebp - 0x238]
mov dword [ebp - 0x214], eax
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x214]
mov cl, byte [edx + esi + 0x40]
inc esi
or byte [eax], cl
inc dword [ebp - 0x214]
cmp esi, 0x20
jb 0x7858b7
jmp 0x786089
mov dword [ebp - 0x9c], 1
xor esi, esi
lea eax, [ebp - 0x238]
mov dword [ebp - 0x214], eax
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x214]
mov cl, byte [edx + esi + 0x40]
inc esi
not cl
or byte [eax], cl
inc dword [ebp - 0x214]
cmp esi, 0x20
jb 0x7858f2
jmp 0x786089
xor esi, esi
lea eax, [ebp - 0x238]
mov dword [ebp - 0x214], eax
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x214]
mov cl, byte [edx + esi + 0xa0]
inc esi
or byte [eax], cl
inc dword [ebp - 0x214]
cmp esi, 0x20
jb 0x785925
jmp 0x786089
mov dword [ebp - 0x9c], 1
xor esi, esi
lea eax, [ebp - 0x238]
mov dword [ebp - 0x214], eax
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x214]
mov cl, byte [edx + esi + 0xa0]
inc esi
not cl
or byte [eax], cl
inc dword [ebp - 0x214]
cmp esi, 0x20
jb 0x785963
jmp 0x786089
xor esi, esi
lea eax, [ebp - 0x238]
mov dword [ebp - 0x214], eax
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x214]
mov cl, byte [edx + esi]
inc esi
or byte [eax], cl
inc dword [ebp - 0x214]
cmp esi, 0x20
jb 0x785999
jmp 0x786089
mov dword [ebp - 0x9c], 1
xor esi, esi
lea eax, [ebp - 0x238]
mov dword [ebp - 0x214], eax
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x214]
mov cl, byte [edx + esi]
inc esi
not cl
or byte [eax], cl
inc dword [ebp - 0x214]
cmp esi, 0x20
jb 0x7859d3
jmp 0x786089
push 0xffffffffffffffff
push 0x8758dc
mov edx, dword [ebp + 0x30]
push edx
mov ecx, dword [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x8c]
push ecx
lea eax, [ebp - 0x238]
push eax
call fcn.00784930
add esp, 0x18
jmp 0x786089
push 0x8758dc
lea eax, [ebp - 0x8c]
mov edx, dword [ebp + 0x30]
push edx
lea edx, [ebp - 0x238]
mov ecx, dword [ebp - 0x48]
push ecx
push eax
push edx
call fcn.00784990
add esp, 0x14
jmp 0x786089
push 0xffffffffffffffff
push 0x87592c
mov ecx, dword [ebp + 0x30]
lea edx, [ebp - 0x8c]
push ecx
lea ecx, [ebp - 0x238]
mov eax, dword [ebp - 0x48]
push eax
push edx
push ecx
call fcn.00784930
add esp, 0x18
jmp 0x786089
push 0x87592c
lea ecx, [ebp - 0x8c]
mov eax, dword [ebp + 0x30]
push eax
lea eax, [ebp - 0x238]
mov edx, dword [ebp - 0x48]
push edx
push ecx
push eax
call fcn.00784990
add esp, 0x14
jmp 0x786089
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x120], edx
mov dword [ebp - 0x124], ecx
mov eax, dword [ebp + 0x14]
lea edx, [ebp - 0x124]
push eax
push edx
lea ecx, [ebp - 0x120]
lea eax, [ebp - 0x11c]
push ecx
push eax
push edi
call fcn.00782068
add esp, 0x14
test eax, eax
je 0x789696
cmp esi, 0x10
sete dl
and edx, 1
cmp edx, dword [ebp - 0x11c]
je 0x785aea
mov cl, 3
jmp 0x785aec
mov cl, 4
mov eax, dword [ebp - 0x8c]
mov byte [eax], cl
inc dword [ebp - 0x8c]
mov dl, byte [ebp - 0x120]
mov eax, dword [ebp - 0x8c]
mov byte [eax], dl
inc dword [ebp - 0x8c]
mov dl, byte [ebp - 0x124]
mov ecx, dword [ebp - 0x8c]
mov byte [ecx], dl
inc dword [ebp - 0x8c]
mov dword [ebp - 0xb8], 1
dec dword [ebp - 0xb0]
jmp 0x786089
test byte [ebp - 0x48], 0x40
je 0x785b4b
mov esi, dword [ebp + 0x14]
mov dword [esi], 7
jmp 0x789696
dec dword [ebp - 0xb0]
sub dword [ebp - 0xb4], 2
mov eax, dword [edi]
movzx esi, byte [eax]
jmp 0x785b69
xor eax, eax
mov dword [ebp - 0x60], eax
add dword [edi], 2
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x5c
jne 0x785b81
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x45
je 0x785b61
mov edx, dword [edi]
cmp esi, 0xd
mov dword [ebp - 0xf8], edx
je 0x785b93
cmp esi, 0xa
jne 0x785b9d
mov ecx, dword [ebp + 0x30]
or dword [ecx + 0x64], 0x800
cmp dword [ebp - 0x60], 0
jne 0x785f15
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2d
jne 0x785f15
add dword [edi], 2
jmp 0x785bbf
add dword [edi], 2
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x5c
jne 0x785c00
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x45
je 0x785bbc
jmp 0x785c00
add dword [edi], 2
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5c
jne 0x785bf7
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x45
jne 0x785bf7
add dword [edi], 2
jmp 0x785c00
mov dword [ebp - 0x60], 1
jmp 0x785c17
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x5c
jne 0x785c17
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x51
je 0x785bd8
mov ecx, dword [edi]
cmp byte [ecx], 0
je 0x785c2f
cmp dword [ebp - 0x60], 0
jne 0x785c3c
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x5d
jne 0x785c3c
mov ecx, dword [ebp - 0xf8]
mov dword [edi], ecx
jmp 0x785f15
cmp dword [ebp - 0x80], 0
je 0x785dd3
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0x128], edx
cmp dword [ebp - 0x128], 0xc0
jb 0x785dde
test byte [ebp - 0x128], 0x20
jne 0x785c90
mov eax, dword [edi]
mov ecx, dword [ebp - 0x128]
and ecx, 0x1f
xor edx, edx
mov dl, byte [eax + 1]
shl ecx, 6
and edx, 0x3f
or ecx, edx
mov dword [ebp - 0x128], ecx
inc dword [edi]
jmp 0x785dde
test byte [ebp - 0x128], 0x10
jne 0x785cce
mov eax, dword [edi]
xor edx, edx
mov ecx, dword [ebp - 0x128]
and ecx, 0xf
mov dl, byte [eax + 1]
and edx, 0x3f
mov eax, dword [edi]
shl edx, 6
shl ecx, 0xc
or ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
and edx, 0x3f
or ecx, edx
mov dword [ebp - 0x128], ecx
add dword [edi], 2
jmp 0x785dde
test byte [ebp - 0x128], 8
jne 0x785d1b
mov eax, dword [edi]
xor edx, edx
mov ecx, dword [ebp - 0x128]
and ecx, 7
mov dl, byte [eax + 1]
and edx, 0x3f
mov eax, dword [edi]
shl edx, 0xc
shl ecx, 0x12
or ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
mov eax, dword [edi]
and edx, 0x3f
shl edx, 6
or ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
and edx, 0x3f
or ecx, edx
mov dword [ebp - 0x128], ecx
add dword [edi], 3
jmp 0x785dde
test byte [ebp - 0x128], 4
jne 0x785d74
mov eax, dword [edi]
xor edx, edx
mov ecx, dword [ebp - 0x128]
and ecx, 3
mov dl, byte [eax + 1]
and edx, 0x3f
mov eax, dword [edi]
shl edx, 0x12
shl ecx, 0x18
or ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
mov eax, dword [edi]
and edx, 0x3f
shl edx, 0xc
or ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
mov eax, dword [edi]
and edx, 0x3f
shl edx, 6
or ecx, edx
xor edx, edx
mov dl, byte [eax + 4]
and edx, 0x3f
or ecx, edx
mov dword [ebp - 0x128], ecx
add dword [edi], 4
jmp 0x785dde
mov eax, dword [edi]
xor edx, edx
mov ecx, dword [ebp - 0x128]
and ecx, 1
mov dl, byte [eax + 1]
and edx, 0x3f
mov eax, dword [edi]
shl edx, 0x18
shl ecx, 0x1e
or ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
mov eax, dword [edi]
and edx, 0x3f
shl edx, 0x12
or ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
mov eax, dword [edi]
and edx, 0x3f
shl edx, 0xc
or ecx, edx
xor edx, edx
mov dl, byte [eax + 4]
mov eax, dword [edi]
and edx, 0x3f
shl edx, 6
or ecx, edx
xor edx, edx
mov dl, byte [eax + 5]
and edx, 0x3f
or ecx, edx
mov dword [ebp - 0x128], ecx
add dword [edi], 5
jmp 0x785dde
mov ecx, dword [edi]
movzx ecx, byte [ecx]
mov dword [ebp - 0x128], ecx
cmp dword [ebp - 0x60], 0
jne 0x785ea0
cmp dword [ebp - 0x128], 0x5c
jne 0x785e52
push 1
mov eax, dword [ebp - 0x48]
push eax
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x40]
lea edx, [ebp - 0x128]
push ecx
mov eax, dword [ebp + 0x14]
push eax
push edx
push edi
call fcn.007817d8
add esp, 0x18
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x789696
cmp dword [ebp - 0x12c], 0
je 0x785ea0
cmp dword [ebp - 0x12c], 5
jne 0x785e42
mov dword [ebp - 0x128], 8
jmp 0x785ea0
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x53
jmp 0x789696
cmp dword [ebp - 0x128], 0x5b
jne 0x785ea0
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3a
je 0x785e7f
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2e
je 0x785e7f
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3d
jne 0x785ea0
lea edx, [ebp - 0x6c]
push edx
mov ecx, dword [edi]
push ecx
call fcn.007843f0
add esp, 8
test eax, eax
je 0x785ea0
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x53
jmp 0x789696
cmp esi, dword [ebp - 0x128]
jbe 0x785eb6
mov edx, dword [ebp + 0x14]
mov dword [edx], 8
jmp 0x789696
cmp esi, dword [ebp - 0x128]
je 0x785f15
mov dword [ebp - 0xb4], 2
cmp dword [ebp - 0x128], 0xd
je 0x785eda
cmp dword [ebp - 0x128], 0xa
jne 0x785ee4
mov ecx, dword [ebp + 0x30]
or dword [ecx + 0x64], 0x800
mov eax, dword [ebp - 0x128]
push eax
push esi
mov edx, dword [ebp + 0x30]
lea eax, [ebp - 0x8c]
push edx
lea edx, [ebp - 0x238]
mov ecx, dword [ebp - 0x48]
push ecx
push eax
push edx
call fcn.00784728
add esp, 0x18
add dword [ebp - 0xb0], eax
jmp 0x786089
cmp dword [ebp - 0xb4], 2
jge 0x785f24
inc dword [ebp - 0xb4]
cmp dword [ebp - 0x60], 0
jne 0x786063
cmp dword [ebp - 0xb8], 0
jne 0x786063
cmp dword [ebp - 0xb4], 1
jne 0x786063
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x5d
jne 0x786063
inc dword [edi]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0x98], 0
je 0x786026
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x785f80
mov dword [ebp - 0x24], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x80], 0
je 0x785ff1
test byte [ebp - 0x48], 1
je 0x785ff1
mov ecx, esi
test ecx, ecx
jns 0x785fa1
add ecx, 0x7f
sar ecx, 7
xor eax, eax
mov al, byte [ecx + 0x885ee8]
shl eax, 7
mov edx, esi
and edx, 0x8000007f
jns 0x785fbe
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx ecx, word [eax*2 + 0x877be8]
xor eax, eax
mov al, byte [ecx*8 + 0x87656b]
mov dword [ebp - 0x130], eax
test eax, eax
je 0x785ff1
mov byte [ebx], 0xf
inc ebx
mov byte [ebx], 9
inc ebx
mov dl, byte [ebp - 0x130]
mov byte [ebx], dl
inc ebx
jmp 0x78968f
test byte [ebp - 0x48], 1
je 0x785ffb
mov cl, 0x20
jmp 0x785ffd
mov cl, 0x1f
mov byte [ebx], cl
inc ebx
cmp dword [ebp - 0x80], 0
je 0x78601c
cmp esi, 0x7f
jbe 0x78601c
push ebx
push esi
call fcn.0079d8a4
add esp, 8
add ebx, eax
jmp 0x78968f
mov eax, esi
mov byte [ebx], al
inc ebx
jmp 0x78968f
cmp dword [ebp - 0x80], 0
je 0x78604c
cmp esi, 0x7f
jbe 0x78604c
lea edx, [ebp - 0xf0]
push edx
push esi
call fcn.0079d8a4
add esp, 8
mov dword [ebp - 0xe0], eax
jmp 0x7893b6
mov ecx, esi
mov byte [ebp - 0xf0], cl
mov dword [ebp - 0xe0], 1
jmp 0x7893b6
push esi
push esi
mov eax, dword [ebp + 0x30]
lea ecx, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x238]
mov edx, dword [ebp - 0x48]
push edx
push ecx
push eax
call fcn.00784728
add esp, 0x18
add dword [ebp - 0xb0], eax
inc dword [edi]
mov edx, dword [edi]
movzx esi, byte [edx]
test esi, esi
jne 0x7860af
cmp dword [ebp - 0x70], 0
je 0x7860c2
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dword [edi], eax
mov dword [ebp - 0x70], edx
inc dword [edi]
mov ecx, dword [edi]
movzx esi, byte [ecx]
test esi, esi
je 0x7860c2
cmp esi, 0x5d
jne 0x7851a8
cmp dword [ebp - 0x60], 0
jne 0x7851a8
test esi, esi
jne 0x7860d4
mov eax, dword [ebp + 0x14]
mov dword [eax], 6
jmp 0x789696
mov edx, dword [ebp - 0x8c]
cmp edx, dword [ebp - 0x94]
jbe 0x7860ec
mov dword [ebp - 0x90], 1
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x7860f9
mov dword [ebp - 0x24], 0xffffffff
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x90], 0
je 0x78626f
cmp dword [ebp - 0xb8], 0
jne 0x78613a
cmp dword [ebp - 0x9c], 0
je 0x78613a
test byte [ebp - 0x45], 0x20
je 0x78626f
cmp dword [ebp - 0x80], 0
je 0x7861a1
cmp dword [ebp - 0x9c], 0
je 0x7861a1
cmp dword [ebp - 0x98], 0
jne 0x7861a1
test byte [ebp - 0x45], 0x20
jne 0x7861a1
mov ecx, dword [ebp - 0x8c]
mov byte [ecx], 2
inc dword [ebp - 0x8c]
cmp dword [ebp - 0x80], 0
je 0x7861a1
mov eax, dword [ebp - 0x8c]
push eax
push pe_nt_image_headers32
call fcn.0079d8a4
add esp, 8
add dword [ebp - 0x8c], eax
mov edx, dword [ebp - 0x8c]
push edx
push 0x10ffff
call fcn.0079d8a4
add esp, 8
add dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0x8c]
mov byte [ecx], 0
inc dword [ebp - 0x8c]
mov byte [ebx], 0x70
inc ebx
add ebx, 2
cmp dword [ebp - 0x98], 0
je 0x7861c4
mov al, 1
jmp 0x7861c6
xor eax, eax
mov byte [ebx], al
cmp dword [ebp - 0xb8], 0
je 0x7861d4
or byte [ebx], 4
cmp dword [ebp - 0xb0], 0
jle 0x786248
or byte [ebx], 2
inc ebx
mov edx, dword [ebp - 0x8c]
sub edx, ebx
lea ecx, [ebx + 0x20]
push edx
push ebx
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
cmp dword [ebp - 0x98], 0
je 0x78622b
cmp dword [ebp - 0xb8], 0
jne 0x78622b
xor esi, esi
lea eax, [ebp - 0x238]
mov dword [ebp - 0x214], eax
mov edx, dword [ebp - 0x214]
not byte [edx]
inc esi
inc dword [ebp - 0x214]
cmp esi, 0x20
jb 0x786217
push 0x20
lea ecx, [ebp - 0x238]
push ecx
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ebx, dword [ebp - 0x8c]
add ebx, 0x20
jmp 0x78624e
mov ebx, dword [ebp - 0x8c]
mov eax, ebx
mov edx, dword [ebp - 0x74]
sub eax, dword [ebp - 0x74]
mov ecx, ebx
sar eax, 8
mov byte [edx + 1], al
sub ecx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x74]
and cl, 0xff
mov byte [esi + 2], cl
jmp 0x78968f
cmp dword [ebp + 0x34], 0
je 0x786286
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp + 0x34]
sub eax, dword [ebp - 0x94]
add dword [edx], eax
mov ecx, dword [ebp - 0x98]
cmp ecx, dword [ebp - 0x9c]
jne 0x786298
mov cl, 0x6e
jmp 0x78629a
mov cl, 0x6f
mov byte [ebx], cl
inc ebx
cmp dword [ebp + 0x34], 0
jne 0x7862e0
cmp dword [ebp - 0x98], 0
je 0x7862ce
xor esi, esi
lea eax, [ebp - 0x238]
mov dword [ebp - 0x214], eax
mov edx, dword [ebp - 0x214]
not byte [edx]
inc esi
inc dword [ebp - 0x214]
cmp esi, 0x20
jb 0x7862ba
push 0x20
lea ecx, [ebp - 0x238]
push ecx
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add ebx, 0x20
jmp 0x78968f
cmp dword [ebp - 0xa4], 0
je 0x789366
mov ecx, dword [ebp + 0x14]
push ecx
lea eax, [ebp - 0x10]
push eax
lea edx, [ebp - 0xc]
push edx
mov ecx, dword [edi]
inc ecx
push ecx
call fcn.0078219c
add esp, 0x10
mov dword [edi], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x789696
jmp 0x786347
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], 0xffffffff
jmp 0x786347
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x10], 0xffffffff
jmp 0x786347
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x74], 0
jne 0x78635b
mov eax, dword [ebp + 0x14]
mov dword [eax], 9
jmp 0x789696
cmp dword [ebp - 0xc], 0
jne 0x786379
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x10]
jne 0x786385
xor eax, eax
jmp 0x78638a
mov eax, 2
mov dword [ebp - 0x40], eax
xor edx, edx
mov dword [ebp - 8], edx
xor ecx, ecx
mov dword [ebp - 0xa0], ecx
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x5c], ecx
test byte [ebp - 0x48], 8
je 0x78649f
mov esi, dword [edi]
inc esi
jmp 0x7863b0
inc esi
mov edx, dword [ebp + 0x30]
xor eax, eax
mov al, byte [esi]
mov ecx, dword [edx + 0xc]
test byte [ecx + eax], 1
jne 0x7863af
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x23
jne 0x78649c
inc esi
jmp 0x78648e
mov eax, dword [ebp + 0x30]
cmp dword [eax + 0x84], 0
je 0x78641d
mov edx, dword [ebp + 0x30]
cmp esi, dword [edx + 0x1c]
jae 0x786412
mov ecx, dword [ebp - 0x80]
push ecx
mov eax, dword [ebp + 0x30]
add eax, 0x88
push eax
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x1c]
push ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x84]
push edx
push esi
call fcn.0079d4bc
add esp, 0x14
test eax, eax
jne 0x786416
xor ecx, ecx
jmp 0x786460
mov ecx, 1
jmp 0x786460
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp + 0x30]
sub edx, dword [eax + 0x88]
cmp esi, edx
ja 0x786457
mov dl, byte [esi]
mov ecx, dword [ebp + 0x30]
cmp dl, byte [ecx + 0x8c]
jne 0x786457
mov ecx, dword [ebp + 0x30]
cmp dword [ecx + 0x88], 1
je 0x78645b
mov al, byte [esi + 1]
mov edx, dword [ebp + 0x30]
cmp al, byte [edx + 0x8d]
je 0x78645b
xor ecx, ecx
jmp 0x786460
mov ecx, 1
test ecx, ecx
je 0x786472
mov eax, dword [ebp + 0x30]
add esi, dword [eax + 0x88]
jmp 0x7863b0
inc esi
cmp dword [ebp - 0x80], 0
je 0x78648e
jmp 0x78647c
inc esi
xor edx, edx
mov dl, byte [esi]
and edx, 0xc0
cmp edx, 0x80
je 0x78647b
cmp byte [esi], 0
jne 0x7863d3
jmp 0x7863b0
dec esi
mov dword [edi], esi
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x2b
jne 0x7864be
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0xa0], 1
inc dword [edi]
jmp 0x7864da
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3f
jne 0x7864d4
mov edx, dword [ebp - 0x18]
mov dword [ebp - 4], edx
inc dword [edi]
jmp 0x7864da
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x75
jne 0x7865a8
push 3
mov ecx, dword [ebp - 0x74]
push ecx
mov eax, dword [ebp - 0x74]
add eax, 3
push eax
call sub.msvcrt.dll_memmove
mov edx, dword [ebp - 0x74]
add esp, 0xc
add ebx, 6
mov byte [edx], 0x81
mov ecx, dword [ebp - 0x74]
mov byte [ecx + 1], 0
mov eax, dword [ebp - 0x74]
mov byte [eax + 2], 6
mov edx, dword [ebp - 0x74]
mov byte [edx + 6], 0x78
mov ecx, dword [ebp - 0x74]
mov byte [ecx + 7], 0
mov eax, dword [ebp - 0x74]
mov byte [eax + 8], 6
mov dword [ebp - 0x50], 9
cmp dword [ebp + 0x34], 0
jne 0x7865a8
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
mov ecx, dword [edx + 0x20]
mov edx, dword [eax + 0x10]
add edx, 2
cmp ecx, edx
jb 0x7865a8
mov ecx, dword [ebp + 0x30]
xor edx, edx
mov eax, dword [ecx + 0x20]
mov dl, byte [eax - 2]
mov eax, dword [ebp + 0x30]
shl edx, 8
mov ecx, dword [eax + 0x20]
xor eax, eax
mov al, byte [ecx - 1]
or edx, eax
mov dword [ebp - 0x134], edx
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp - 0x74]
inc edx
sub edx, dword [ecx + 0x14]
cmp edx, dword [ebp - 0x134]
jne 0x7865a8
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp - 0x134]
add ecx, 3
sar ecx, 8
mov edx, dword [eax + 0x20]
mov byte [edx - 2], cl
mov eax, dword [ebp + 0x30]
mov cl, byte [ebp - 0x134]
add cl, 3
and cl, 0xff
mov edx, dword [eax + 0x20]
mov byte [edx - 1], cl
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x1d
je 0x7865dc
mov edx, dword [ebp - 0x74]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x1e
je 0x7865dc
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x1f
je 0x7865dc
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x20
jne 0x7866a7
mov edx, dword [ebp - 0x74]
mov cl, byte [edx]
sub cl, 0x1d
je 0x7865f2
dec cl
je 0x7865f9
dec cl
je 0x786602
dec cl
je 0x78660b
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x786612
mov dword [ebp - 8], 0xd
jmp 0x786612
mov dword [ebp - 8], 0x1a
jmp 0x786612
mov dword [ebp - 8], 0x27
cmp dword [ebp - 0x80], 0
je 0x78667b
xor edx, edx
mov dl, byte [ebx - 1]
and edx, 0xc0
cmp edx, 0x80
jne 0x78667b
lea ecx, [ebx - 1]
mov dword [ebp - 0x138], ecx
jmp 0x78663c
dec dword [ebp - 0x138]
mov eax, dword [ebp - 0x138]
xor edx, edx
mov dl, byte [eax]
and edx, 0xc0
cmp edx, 0x80
je 0x786636
mov esi, ebx
sub esi, dword [ebp - 0x138]
push esi
mov eax, dword [ebp - 0x138]
push eax
lea edx, [ebp - 0x88]
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
or esi, 0x10000000
jmp 0x7866c4
movzx esi, byte [ebx - 1]
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x1e
jg 0x7866c4
cmp dword [ebp - 0xc], 1
jle 0x7866c4
mov dword [ebp - 0x20], esi
mov ecx, dword [ebp + 0x30]
mov ecx, dword [ecx + 0x68]
or ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x28], ecx
jmp 0x7866c4
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x17
jge 0x78691e
mov dword [ebp - 8], 0x34
mov ecx, dword [ebp - 0x74]
movzx esi, byte [ecx]
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x10
je 0x7866db
mov ecx, dword [ebp - 0x74]
movzx ecx, byte [ecx]
cmp ecx, 0xf
jne 0x7866f9
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax + 1]
mov dword [ebp - 0x140], edx
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx + 2]
mov dword [ebp - 0x144], eax
jmp 0x786708
or edx, 0xffffffff
mov dword [ebp - 0x144], edx
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x13c], ebx
cmp dword [ebp - 0x10], 0
mov ebx, dword [ebp - 0x74]
je 0x78737b
mov eax, dword [ebp - 8]
add dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x786771
cmp dword [ebp - 0x10], 0xffffffff
jne 0x78673b
mov dl, byte [ebp - 4]
add dl, 0x21
mov byte [ebx], dl
inc ebx
jmp 0x7868ca
cmp dword [ebp - 0x10], 1
jne 0x78674f
mov cl, byte [ebp - 4]
add cl, 0x25
mov byte [ebx], cl
inc ebx
jmp 0x7868ca
mov cl, byte [ebp - 4]
add cl, 0x27
mov byte [ebx], cl
inc ebx
mov eax, dword [ebp - 0x10]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0x10]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
jmp 0x7868ca
cmp dword [ebp - 0xc], 1
jne 0x7867c0
cmp dword [ebp - 0x10], 0xffffffff
jne 0x78678b
mov cl, byte [ebp - 4]
add cl, 0x23
mov byte [ebx], cl
inc ebx
jmp 0x7868ca
cmp dword [ebp - 0x10], 1
mov ebx, dword [ebp - 0x13c]
je 0x78737b
mov al, byte [ebp - 4]
add al, 0x27
mov byte [ebx], al
inc ebx
mov edx, dword [ebp - 0x10]
dec edx
sar edx, 8
mov byte [ebx], dl
mov cl, byte [ebp - 0x10]
add cl, 0xff
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
jmp 0x7868ca
mov cl, byte [ebp - 8]
add cl, 0x29
mov byte [ebx], cl
inc ebx
mov eax, dword [ebp - 0xc]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0xc]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
cmp dword [ebp - 0x10], 0
jge 0x78683e
cmp dword [ebp - 0x80], 0
je 0x786810
test esi, 0x10000000
je 0x786810
mov ecx, esi
lea eax, [ebp - 0x88]
and ecx, 7
push ecx
push eax
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, esi
and edx, 7
add ebx, edx
jmp 0x786830
mov ecx, esi
mov byte [ebx], cl
inc ebx
cmp dword [ebp - 0x140], 0
jl 0x786830
mov al, byte [ebp - 0x140]
mov byte [ebx], al
inc ebx
mov dl, byte [ebp - 0x144]
mov byte [ebx], dl
inc ebx
mov cl, byte [ebp - 4]
add cl, 0x21
mov byte [ebx], cl
inc ebx
jmp 0x7868ca
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
je 0x7868ca
cmp dword [ebp - 0x80], 0
je 0x786877
test esi, 0x10000000
je 0x786877
mov edx, esi
lea ecx, [ebp - 0x88]
and edx, 7
push edx
push ecx
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, esi
and eax, 7
add ebx, eax
jmp 0x78687c
mov edx, esi
mov byte [ebx], dl
inc ebx
cmp dword [ebp - 0x140], 0
jl 0x786897
mov cl, byte [ebp - 0x140]
mov byte [ebx], cl
inc ebx
mov al, byte [ebp - 0x144]
mov byte [ebx], al
inc ebx
mov edx, dword [ebp - 0xc]
sub dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 1
jne 0x7868ae
mov cl, byte [ebp - 4]
add cl, 0x25
mov byte [ebx], cl
inc ebx
jmp 0x7868ca
mov al, byte [ebp - 4]
add al, 0x27
mov byte [ebx], al
inc ebx
mov edx, dword [ebp - 0x10]
sar edx, 8
mov byte [ebx], dl
mov cl, byte [ebp - 0x10]
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
cmp dword [ebp - 0x80], 0
je 0x7868f5
test esi, 0x10000000
je 0x7868f5
mov eax, esi
lea edx, [ebp - 0x88]
and eax, 7
push eax
push edx
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
and esi, 7
add ebx, esi
jmp 0x7868fa
mov ecx, esi
mov byte [ebx], cl
inc ebx
cmp dword [ebp - 0x140], 0
jl 0x7871bb
mov al, byte [ebp - 0x140]
mov byte [ebx], al
inc ebx
mov dl, byte [ebp - 0x144]
mov byte [ebx], dl
inc ebx
jmp 0x7871bb
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x6e
je 0x786976
mov edx, dword [ebp - 0x74]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x6f
je 0x786976
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x70
je 0x786976
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x71
je 0x786976
mov edx, dword [ebp - 0x74]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x72
je 0x786976
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x73
je 0x786976
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x74
jne 0x786a12
cmp dword [ebp - 0x10], 0
jne 0x786984
mov ebx, dword [ebp - 0x74]
jmp 0x78737b
cmp dword [ebp - 0xc], 0
jne 0x78699d
cmp dword [ebp - 0x10], 0xffffffff
jne 0x78699d
mov al, byte [ebp - 4]
add al, 0x62
mov byte [ebx], al
inc ebx
jmp 0x7871bb
cmp dword [ebp - 0xc], 1
jne 0x7869b7
cmp dword [ebp - 0x10], 0xffffffff
jne 0x7869b7
mov dl, byte [ebp - 4]
add dl, 0x64
mov byte [ebx], dl
inc ebx
jmp 0x7871bb
cmp dword [ebp - 0xc], 0
jne 0x7869d1
cmp dword [ebp - 0x10], 1
jne 0x7869d1
mov cl, byte [ebp - 4]
add cl, 0x66
mov byte [ebx], cl
inc ebx
jmp 0x7871bb
mov cl, byte [ebp - 4]
add cl, 0x68
mov byte [ebx], cl
inc ebx
mov eax, dword [ebp - 0xc]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0xc]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
cmp dword [ebp - 0x10], 0xffffffff
jne 0x7869f9
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0x10]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
jmp 0x7871bb
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x7d
jl 0x78719a
mov edx, dword [ebp - 0x74]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x87
jg 0x78719a
mov esi, ebx
mov eax, dword [ebp - 0x7c]
sub esi, dword [ebp - 0x74]
mov dword [ebp - 0x14c], eax
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x154], ecx
mov ecx, dword [ebp - 0x74]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x87
jne 0x786a75
mov edx, dword [ebp - 0x74]
xor ecx, ecx
mov cl, byte [edx + 3]
cmp ecx, 0x91
je 0x78737b
mov eax, dword [ebp - 0x74]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x81
jge 0x786aa1
cmp dword [ebp - 0xc], 0
jg 0x78737b
cmp dword [ebp - 0x10], 0
jl 0x786a9a
cmp dword [ebp - 0x10], 1
jle 0x786aa1
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0xc], 0
jne 0x786ba6
cmp dword [ebp - 0x10], 1
jg 0x786b0e
mov byte [ebx], 0
mov ecx, dword [ebp - 0x7c]
push ecx
mov eax, dword [ebp + 0x30]
push eax
mov edx, dword [ebp - 0x80]
push edx
push 1
mov ecx, dword [ebp - 0x74]
push ecx
call fcn.007844ac
add esp, 0x14
push esi
mov eax, dword [ebp - 0x74]
push eax
mov edx, dword [ebp - 0x74]
inc edx
push edx
call sub.msvcrt.dll_memmove
add esp, 0xc
inc ebx
cmp dword [ebp - 0x10], 0
jne 0x786af2
mov ecx, dword [ebp - 0x74]
mov byte [ecx], 0xa1
jmp 0x78737b
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x74]
mov dl, byte [ebp - 4]
add dl, 0x92
mov byte [eax], dl
inc dword [ebp - 0x74]
jmp 0x786b9e
mov byte [ebx], 0
mov edx, dword [ebp - 0x7c]
push edx
mov ecx, dword [ebp + 0x30]
push ecx
mov ecx, dword [ebp - 0x80]
push ecx
push 4
mov eax, dword [ebp - 0x74]
push eax
call fcn.007844ac
add esp, 0x14
push esi
mov edx, dword [ebp - 0x74]
push edx
mov ecx, dword [ebp - 0x74]
add ecx, 4
push ecx
call sub.msvcrt.dll_memmove
mov edx, dword [ebp - 0x74]
mov al, byte [ebp - 4]
add al, 0x92
add esp, 0xc
mov byte [edx], al
add ebx, 4
inc dword [ebp - 0x74]
mov ecx, dword [ebp - 0x74]
mov byte [ecx], 0x83
inc dword [ebp - 0x74]
cmp dword [ebp - 0x150], 0
jne 0x786b65
xor eax, eax
jmp 0x786b6e
mov eax, dword [ebp - 0x74]
sub eax, dword [ebp - 0x150]
mov dword [ebp - 0x158], eax
mov edx, dword [ebp - 0x74]
mov dword [ebp - 0x150], edx
mov ecx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x74]
sar ecx, 8
mov byte [eax], cl
mov ecx, dword [ebp - 0x74]
mov dl, byte [ebp - 0x158]
and dl, 0xff
mov byte [ecx + 1], dl
add dword [ebp - 0x74], 2
dec dword [ebp - 0x10]
jmp 0x786d37
cmp dword [ebp - 0xc], 1
jle 0x786d2b
cmp dword [ebp + 0x34], 0
je 0x786c1a
mov ecx, dword [ebp - 0xc]
dec ecx
imul ecx, dword [ebp - 0x50]
mov dword [ebp - 0x15c], ecx
mov eax, dword [ebp - 0xc]
dec eax
mov dword [ebp - 0x25c], eax
fild dword [ebp - 0x25c]
fild dword [ebp - 0x50]
fmulp st(1)
fld qword [0x7896a8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x786bfc
mov edx, dword [ebp + 0x34]
mov ecx, 0x7fffffeb
sub ecx, dword [edx]
cmp ecx, dword [ebp - 0x15c]
jge 0x786c0a
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x14
jmp 0x789696
mov eax, dword [ebp + 0x34]
mov edx, dword [ebp - 0x15c]
add dword [eax], edx
jmp 0x786d2b
cmp dword [ebp - 0x64], 0
je 0x786c32
cmp dword [ebp - 0x28], 0
jge 0x786c32
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x148], 1
mov eax, dword [ebp - 0x148]
cmp eax, dword [ebp - 0xc]
jge 0x786d2b
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
mov ecx, dword [edx + 0x20]
sub ecx, dword [eax + 0x10]
mov dword [ebp - 0x160], ecx
push esi
mov edx, dword [ebp - 0x74]
push edx
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x786c88
mov ecx, dword [ebp + 0x30]
push ecx
call fcn.007816c0
pop ecx
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x789696
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x10]
mov ecx, dword [ebp + 0x30]
add eax, dword [edx + 0x3c]
mov edx, dword [ebp - 0x160]
sub edx, dword [ebp - 0x14c]
add eax, 0xffffff9c
sub eax, edx
cmp eax, dword [ecx + 0x20]
jb 0x786c6d
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x10]
add eax, dword [ebp - 0x14c]
jmp 0x786cf8
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
shl edx, 8
or edx, ecx
mov ecx, dword [ebp + 0x30]
add edx, esi
sar edx, 8
mov ecx, dword [ecx + 0x20]
mov byte [ecx], dl
mov ecx, esi
mov dl, byte [eax]
shl edx, 8
or dl, byte [eax + 1]
add dl, cl
mov ecx, dword [ebp + 0x30]
and dl, 0xff
mov ecx, dword [ecx + 0x20]
mov byte [ecx + 1], dl
mov edx, dword [ebp + 0x30]
add dword [edx + 0x20], 2
add eax, 2
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x10]
add ecx, dword [ebp - 0x160]
cmp eax, ecx
jb 0x786cbb
mov eax, dword [ebp - 0x160]
add ebx, esi
mov dword [ebp - 0x14c], eax
inc dword [ebp - 0x148]
mov ecx, dword [ebp - 0x148]
cmp ecx, dword [ebp - 0xc]
jl 0x786c4b
cmp dword [ebp - 0x10], 0
jle 0x786d37
mov eax, dword [ebp - 0xc]
sub dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jl 0x786fa4
cmp dword [ebp + 0x34], 0
je 0x786db8
cmp dword [ebp - 0x10], 0
jle 0x786db8
mov edx, dword [ebp - 0x50]
add edx, 7
imul edx, dword [ebp - 0x10]
add edx, 0xfffffffa
mov dword [ebp - 0x164], edx
fild dword [ebp - 0x10]
mov ecx, dword [ebp - 0x50]
add ecx, 7
mov dword [ebp - 0x260], ecx
fild dword [ebp - 0x260]
fmulp st(1)
fld qword [0x7896a8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x786d9a
mov edx, dword [ebp + 0x34]
mov eax, 0x7fffffeb
sub eax, dword [edx]
cmp eax, dword [ebp - 0x164]
jge 0x786da8
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x14
jmp 0x789696
mov ecx, dword [ebp + 0x34]
mov esi, dword [ebp - 0x164]
add dword [ecx], esi
jmp 0x786f26
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0x148], 0
jl 0x786f26
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
mov ecx, dword [edx + 0x20]
sub ecx, dword [eax + 0x10]
mov dword [ebp - 0x168], ecx
mov dl, byte [ebp - 4]
add dl, 0x92
mov byte [ebx], dl
inc ebx
cmp dword [ebp - 0x148], 0
je 0x786e32
mov byte [ebx], 0x83
inc ebx
cmp dword [ebp - 0x150], 0
jne 0x786e04
xor ecx, ecx
jmp 0x786e0c
mov ecx, ebx
sub ecx, dword [ebp - 0x150]
mov dword [ebp - 0x16c], ecx
mov dword [ebp - 0x150], ebx
mov eax, dword [ebp - 0x16c]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0x16c]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
push esi
mov ecx, dword [ebp - 0x74]
push ecx
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x786e5d
mov eax, dword [ebp + 0x30]
push eax
call fcn.007816c0
pop ecx
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x789696
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp - 0x168]
sub ecx, dword [ebp - 0x14c]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp + 0x30]
add edx, dword [eax + 0x3c]
mov eax, dword [ebp + 0x30]
add edx, 0xffffff9c
sub edx, ecx
cmp edx, dword [eax + 0x20]
jb 0x786e42
mov edx, dword [ebp + 0x30]
mov eax, dword [edx + 0x10]
add eax, dword [ebp - 0x14c]
jmp 0x786ef5
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
shl edx, 8
or edx, ecx
add edx, esi
cmp dword [ebp - 0x148], 0
je 0x786eb0
mov ecx, 4
jmp 0x786eb5
mov ecx, 1
add edx, ecx
mov ecx, dword [ebp + 0x30]
sar edx, 8
mov ecx, dword [ecx + 0x20]
mov byte [ecx], dl
mov ecx, esi
mov dl, byte [eax]
shl edx, 8
or dl, byte [eax + 1]
add dl, cl
cmp dword [ebp - 0x148], 0
je 0x786edb
mov cl, 4
jmp 0x786edd
mov cl, 1
add dl, cl
mov ecx, dword [ebp + 0x30]
and dl, 0xff
mov ecx, dword [ecx + 0x20]
mov byte [ecx + 1], dl
mov edx, dword [ebp + 0x30]
add dword [edx + 0x20], 2
add eax, 2
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x10]
add ecx, dword [ebp - 0x168]
cmp eax, ecx
jb 0x786e90
mov eax, dword [ebp - 0x168]
add ebx, esi
mov dword [ebp - 0x14c], eax
dec dword [ebp - 0x148]
cmp dword [ebp - 0x148], 0
jge 0x786dcf
cmp dword [ebp - 0x150], 0
je 0x7871bb
mov eax, ebx
sub eax, dword [ebp - 0x150]
inc eax
mov edx, ebx
sub edx, eax
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
movzx esi, byte [edx + 2]
or ecx, esi
mov dword [ebp - 0x170], ecx
cmp dword [ebp - 0x170], 0
jne 0x786f61
xor ecx, ecx
jmp 0x786f6d
mov ecx, dword [ebp - 0x150]
sub ecx, dword [ebp - 0x170]
mov dword [ebp - 0x150], ecx
mov byte [ebx], 0x78
inc ebx
mov ecx, eax
sar ecx, 8
mov byte [ebx], cl
mov ecx, eax
and cl, 0xff
mov byte [ebx + 1], cl
mov ecx, eax
sar ecx, 8
add ebx, 2
and al, 0xff
mov byte [edx + 1], cl
mov byte [edx + 2], al
cmp dword [ebp - 0x150], 0
jne 0x786f33
jmp 0x7871bb
lea eax, [ebx - 3]
xor ecx, ecx
mov dword [ebp - 0x174], eax
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x174]
mov esi, dword [ebp - 0x174]
mov cl, byte [edx + 1]
shl ecx, 8
xor edx, edx
mov dl, byte [eax + 2]
xor eax, eax
or ecx, edx
sub esi, ecx
mov al, byte [esi]
cmp eax, 0x81
je 0x786fe7
xor edx, edx
mov dl, byte [esi]
cmp edx, 0x82
jne 0x786ff3
cmp dword [ebp - 0xa0], 0
je 0x786ff3
mov byte [esi], 0x83
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x81
je 0x78700b
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x82
jne 0x78701d
mov edx, dword [ebp - 0x174]
mov al, byte [ebp - 4]
add al, 0x79
mov byte [edx], al
jmp 0x7871bb
cmp dword [ebp + 0x34], 0
jne 0x787082
mov dword [ebp - 0x178], esi
push 0
mov ecx, dword [ebp + 0x30]
push ecx
mov eax, dword [ebp - 0x80]
push eax
mov edx, dword [ebp - 0x174]
push edx
mov ecx, dword [ebp - 0x178]
push ecx
call fcn.007828d8
add esp, 0x14
test eax, eax
je 0x787052
add byte [esi], 5
jmp 0x787082
mov eax, dword [ebp - 0x178]
xor edx, edx
mov dl, byte [eax + 1]
shl edx, 8
mov eax, dword [ebp - 0x178]
xor ecx, ecx
mov cl, byte [eax + 2]
or edx, ecx
add dword [ebp - 0x178], edx
mov edx, dword [ebp - 0x178]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x77
je 0x787029
xor eax, eax
mov al, byte [esi]
cmp eax, 0x87
jne 0x7870a8
xor edx, edx
xor eax, eax
mov dl, byte [esi + 1]
mov al, byte [esi + 2]
shl edx, 8
or edx, eax
movzx edx, byte [esi + edx]
cmp edx, 0x77
je 0x7870a8
mov byte [esi], 0x8c
cmp dword [ebp - 0xa0], 0
je 0x78718a
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x87
je 0x7870d1
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x8c
jne 0x78715d
mov eax, ebx
sub eax, esi
mov dword [ebp - 0x17c], eax
mov byte [ebx], 0
mov edx, dword [ebp - 0x7c]
push edx
mov ecx, dword [ebp + 0x30]
push ecx
mov eax, dword [ebp - 0x80]
push eax
push 3
push esi
call fcn.007844ac
add esp, 0x14
mov edx, dword [ebp - 0x17c]
push edx
push esi
lea ecx, [esi + 3]
push ecx
call sub.msvcrt.dll_memmove
add dword [ebp - 0x17c], 3
xor eax, eax
add esp, 0xc
mov al, byte [esi]
add ebx, 3
cmp eax, 0x87
jne 0x787122
mov dl, 0x84
jmp 0x787124
mov dl, 0x89
mov byte [esi], dl
mov byte [ebx], 0x7b
inc ebx
mov eax, dword [ebp - 0x17c]
sar eax, 8
mov byte [ebx], al
mov cl, byte [ebp - 0x17c]
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
mov ecx, dword [ebp - 0x17c]
sar ecx, 8
mov byte [esi + 1], cl
mov al, byte [ebp - 0x17c]
and al, 0xff
mov byte [esi + 2], al
jmp 0x787168
inc byte [esi]
mov edx, dword [ebp - 0x174]
mov byte [edx], 0x7b
cmp dword [ebp - 0x154], 0
je 0x78717a
mov ecx, dword [ebp - 0x154]
mov byte [ecx], 0x94
cmp dword [ebp - 0xc], 2
jge 0x7871bb
xor eax, eax
mov dword [ebp - 0xa0], eax
jmp 0x7871bb
mov eax, dword [ebp - 0x174]
mov dl, byte [ebp - 4]
add dl, 0x79
mov byte [eax], dl
jmp 0x7871bb
mov edx, dword [ebp - 0x74]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x9d
je 0x78737b
mov esi, dword [ebp + 0x14]
mov dword [esi], 0xb
jmp 0x789696
cmp dword [ebp - 0xa0], 0
je 0x78737b
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x50
jg 0x7871f2
je 0x787245
add edx, 0xffffffe3
sub edx, 4
jb 0x787245
sub edx, 8
je 0x787245
sub edx, 0xd
je 0x787245
sub edx, 0xd
je 0x787245
jmp 0x7872a2
sub edx, 0x5d
je 0x78720e
add edx, 0xffffffef
sub edx, 2
jb 0x787284
je 0x78728a
jmp 0x7872a2
mov ecx, dword [ebp - 0x5c]
movzx ecx, byte [ecx + 3]
cmp ecx, 0x10
je 0x787227
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 3]
cmp edx, 0xf
jne 0x78722e
mov ecx, 2
jmp 0x787230
xor ecx, ecx
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
movzx esi, byte [edx + 0x875e40]
add ecx, esi
add dword [ebp - 0x5c], ecx
jmp 0x7872a2
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
xor ecx, ecx
mov cl, byte [edx + 0x875e40]
add dword [ebp - 0x5c], ecx
cmp dword [ebp - 0x80], 0
je 0x7872a2
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx - 1]
cmp eax, 0xc0
jl 0x7872a2
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx - 1]
and ecx, 0x3f
xor eax, eax
mov al, byte [ecx + 0x875ee2]
add dword [ebp - 0x5c], eax
jmp 0x7872a2
add dword [ebp - 0x5c], 0x21
jmp 0x7872a2
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 2]
or ecx, edx
add dword [ebp - 0x5c], ecx
mov ecx, ebx
sub ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x180], ecx
cmp dword [ebp - 0x180], 0
jle 0x78737b
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0x184], edx
cmp dword [ebp - 0x184], 0x76
jae 0x7872f8
mov ecx, dword [ebp - 0x184]
xor eax, eax
mov al, byte [ecx + 0x87577c]
test eax, eax
jle 0x7872f8
mov edx, dword [ebp - 0x184]
mov eax, dword [ebp - 0x5c]
mov cl, byte [edx + 0x87577c]
mov byte [eax], cl
jmp 0x78737b
mov byte [ebx], 0
mov edx, dword [ebp - 0x7c]
push edx
mov ecx, dword [ebp + 0x30]
push ecx
mov eax, dword [ebp - 0x80]
push eax
push 3
mov edx, dword [ebp - 0x5c]
push edx
call fcn.007844ac
add esp, 0x14
mov ecx, dword [ebp - 0x180]
push ecx
mov eax, dword [ebp - 0x5c]
push eax
mov edx, dword [ebp - 0x5c]
add edx, 3
push edx
call sub.msvcrt.dll_memmove
add dword [ebp - 0x180], 3
mov ecx, dword [ebp - 0x5c]
add ebx, 3
add esp, 0xc
mov byte [ecx], 0x81
mov byte [ebx], 0x78
inc ebx
mov eax, dword [ebp - 0x180]
sar eax, 8
mov byte [ebx], al
mov dl, byte [ebp - 0x180]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
mov ecx, dword [ebp - 0x180]
mov eax, dword [ebp - 0x5c]
sar ecx, 8
mov byte [eax + 1], cl
mov eax, dword [ebp - 0x5c]
mov dl, byte [ebp - 0x180]
and dl, 0xff
mov byte [eax + 2], dl
xor edx, edx
mov dword [ebp - 0x74], edx
mov ecx, dword [ebp + 0x30]
mov esi, dword [ebp - 0x40]
or dword [ecx + 0x68], esi
jmp 0x78968f
inc dword [edi]
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x2a
jne 0x787673
mov ecx, dword [edi]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x3a
je 0x7873c1
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 1]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0xc]
test byte [ecx + edx], 2
je 0x787673
xor edx, edx
xor eax, eax
mov dword [ebp - 0x18c], edx
xor edx, edx
mov dword [ebp - 0x190], 0x874834
mov ecx, dword [edi]
inc ecx
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x74], edx
inc dword [edi]
jmp 0x7873ef
inc dword [edi]
mov ecx, dword [edi]
mov edx, dword [ebp + 0x30]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [edx + 0xc]
test byte [edx + eax], 2
jne 0x7873ed
mov eax, dword [edi]
sub eax, dword [ebp - 0x194]
mov dword [ebp - 0x188], eax
mov ecx, dword [edi]
movzx ecx, byte [ecx]
cmp ecx, 0x3a
jne 0x787461
inc dword [edi]
mov eax, dword [edi]
mov dword [ebp - 0x198], eax
jmp 0x787427
inc dword [edi]
mov edx, dword [edi]
cmp byte [edx], 0
je 0x787439
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x29
jne 0x787425
mov edx, dword [edi]
sub edx, dword [ebp - 0x198]
mov dword [ebp - 0x18c], edx
cmp dword [ebp - 0x18c], 0xff
jbe 0x787461
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x4b
jmp 0x789696
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x29
je 0x78747a
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x3c
jmp 0x789696
xor esi, esi
jmp 0x78764d
lea eax, [esi + esi*2]
mov edx, dword [eax*4 + 0x8743d8]
cmp edx, dword [ebp - 0x188]
jne 0x78763b
mov ecx, dword [ebp - 0x188]
push ecx
mov ecx, dword [ebp - 0x190]
push ecx
mov eax, dword [ebp - 0x194]
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x78763b
lea edx, [esi + esi*2]
cmp dword [edx*4 + 0x8743dc], 0x9e
jne 0x78755a
cmp dword [ebp - 0x18c], 0
je 0x7874e7
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x3b
jmp 0x789696
mov eax, dword [ebp + 0x30]
mov dword [eax + 0x6c], 1
mov edx, dword [ebp + 0x30]
mov eax, dword [edx + 0x24]
test eax, eax
je 0x787528
cmp dword [ebp + 0x34], 0
je 0x787509
mov edx, dword [ebp + 0x34]
add dword [edx], 3
jmp 0x787522
mov byte [ebx], 0xa0
inc ebx
movzx ecx, word [eax + 4]
sar ecx, 8
mov byte [ebx], cl
mov dl, byte [eax + 4]
and dl, 0xff
mov byte [ebx + 1], dl
add ebx, 2
mov eax, dword [eax]
test eax, eax
jne 0x7874fb
mov eax, dword [ebp + 0x30]
cmp dword [eax + 0x5c], 0
jle 0x787535
mov cl, 0x9f
jmp 0x787537
mov cl, 0x9e
mov byte [ebx], cl
xor eax, eax
mov al, cl
mov dword [ebp - 0x19c], eax
inc ebx
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x78760a
mov dword [ebp - 0x24], 0xffffffff
jmp 0x78760a
cmp dword [ebp - 0x18c], 0
jne 0x787597
lea edx, [esi + esi*2]
cmp dword [edx*4 + 0x8743dc], 0
jge 0x78757e
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x42
jmp 0x789696
lea eax, [esi + esi*2]
mov dl, byte [eax*4 + 0x8743dc]
xor eax, eax
mov byte [ebx], dl
inc ebx
mov al, dl
mov dword [ebp - 0x19c], eax
jmp 0x78760a
lea ecx, [esi + esi*2]
cmp dword [ecx*4 + 0x8743e0], 0
jge 0x7875b2
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x3b
jmp 0x789696
lea eax, [esi + esi*2]
mov dl, byte [eax*4 + 0x8743e0]
xor eax, eax
mov byte [ebx], dl
mov al, dl
mov dword [ebp - 0x19c], eax
inc ebx
cmp dword [ebp + 0x34], 0
je 0x7875e0
mov ecx, dword [ebp + 0x34]
mov eax, dword [ebp - 0x18c]
add dword [ecx], eax
mov byte [ebx], 0
inc ebx
jmp 0x787606
mov dl, byte [ebp - 0x18c]
mov byte [ebx], dl
inc ebx
mov ecx, dword [ebp - 0x18c]
push ecx
mov ecx, dword [ebp - 0x198]
push ecx
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add ebx, dword [ebp - 0x18c]
mov byte [ebx], 0
inc ebx
mov eax, dword [ebp - 0x19c]
add eax, 0xffffff6a
sub eax, 4
jb 0x78762d
sub eax, 2
jb 0x787621
jmp 0x787659
mov edx, dword [ebp + 0x30]
or dword [edx + 0x64], 0x1000
jmp 0x787659
mov ecx, dword [ebp + 0x30]
mov dword [ecx + 0x70], 1
jmp 0x787659
lea eax, [esi + esi*2]
mov edx, dword [eax*4 + 0x8743d8]
inc edx
add dword [ebp - 0x190], edx
inc esi
cmp esi, dword [0x874444]
jl 0x787481
cmp esi, dword [0x874444]
jl 0x78968f
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x3c
jmp 0x789696
mov eax, dword [ebp - 0x48]
xor edx, edx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
mov esi, 0x85
mov edx, dword [eax + 0x20]
sub edx, dword [ecx + 0x10]
xor ecx, ecx
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0xac], ecx
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3f
jne 0x788bf3
inc dword [edi]
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3a
jg 0x787739
je 0x787790
add eax, 0xffffffdf
cmp eax, 0x18
ja case.0x7876ce.34
jmp dword [eax*4 + 0x7876d5]
cmp eax, 0x43
jg 0x787760
je 0x787f37
sub eax, 0x3c
je 0x787ec8
dec eax
je 0x787e4b
dec eax
je 0x787f2b
jmp case.0x7876ce.34
sub eax, 0x50
je 0x787ff2
sub eax, 2
je 0x78876d
sub eax, 0x2a
je 0x78777c
jmp case.0x7876ce.34
mov dword [ebp - 0xac], 1
mov edx, dword [ebp + 0x30]
mov dword [edx + 0x7c], 1
mov esi, 0x83
inc dword [edi]
jmp 0x788c27
mov esi, 0x87
mov eax, dword [edi]
mov dword [ebp - 0x6c], eax
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x3f
jne 0x787829
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x43
jne 0x787829
mov dword [ebp - 0x1a0], 3
mov edx, dword [edi]
mov eax, dword [ebp - 0x1a0]
movzx edx, byte [edx + eax]
cmp edx, 0x30
jl 0x7877f3
mov ecx, dword [edi]
mov eax, dword [ebp - 0x1a0]
xor edx, edx
mov dl, byte [ecx + eax]
cmp edx, 0x39
jg 0x7877f3
inc dword [ebp - 0x1a0]
jmp 0x7877c8
mov ecx, dword [edi]
mov eax, dword [ebp - 0x1a0]
xor edx, edx
mov dl, byte [ecx + eax]
cmp edx, 0x29
jne 0x78780f
mov ecx, dword [ebp - 0x1a0]
inc ecx
add dword [ebp - 0x6c], ecx
mov ecx, dword [ebp - 0x6c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x28
je 0x787829
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1c
jmp 0x789696
mov ecx, dword [ebp - 0x6c]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3f
jne 0x787889
mov edx, dword [ebp - 0x6c]
xor ecx, ecx
mov cl, byte [edx + 2]
cmp ecx, 0x3d
je 0x787877
mov eax, dword [ebp - 0x6c]
xor edx, edx
mov dl, byte [eax + 2]
cmp edx, 0x21
je 0x787877
mov ecx, dword [ebp - 0x6c]
xor eax, eax
mov al, byte [ecx + 2]
cmp eax, 0x3c
jne 0x787889
mov edx, dword [ebp - 0x6c]
xor ecx, ecx
mov cl, byte [edx + 3]
cmp ecx, 0x3d
je 0x787877
mov eax, dword [ebp - 0x6c]
xor edx, edx
mov dl, byte [eax + 3]
cmp edx, 0x21
jne 0x787889
mov ecx, dword [ebp + 0x30]
mov dword [ecx + 0x80], 1
jmp 0x788c27
mov byte [ebx + 3], 0x8d
mov dword [ebp - 0xc8], 3
mov dword [ebp - 0xc4], 0xffffffff
mov dword [ebp - 0x1ac], 0xffffffff
xor eax, eax
xor edx, edx
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0xc0], edx
inc dword [edi]
xor eax, eax
mov ecx, dword [edi]
mov al, byte [ecx]
cmp eax, 0x52
jne 0x7878e7
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x26
jne 0x7878e7
mov dword [ebp - 0xdc], 0xffffffff
add dword [edi], 2
mov byte [ebx + 3], 0x8f
jmp 0x787965
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3c
jne 0x787900
mov dword [ebp - 0xdc], 0x3e
inc dword [edi]
jmp 0x787965
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x27
jne 0x787919
mov dword [ebp - 0xdc], 0x27
inc dword [edi]
jmp 0x787965
xor edx, edx
mov dword [ebp - 0xdc], edx
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x2d
je 0x787937
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x2b
jne 0x787947
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0xc4], edx
inc dword [edi]
jmp 0x787965
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x30
jl 0x787965
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x39
jg 0x787965
xor eax, eax
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0
jl 0x7879dd
jmp 0x7879c1
cmp dword [ebp - 0xc0], 0xccccccb
jle 0x7879a3
jmp 0x787980
inc dword [edi]
mov edx, dword [edi]
movzx esi, byte [edx]
cmp esi, 0x30
jl 0x787995
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x39
jle 0x78797e
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x3d
jmp 0x789696
mov edx, dword [ebp - 0xc0]
mov ecx, dword [edi]
add edx, edx
xor eax, eax
mov al, byte [ecx]
lea edx, [edx + edx*4]
add eax, edx
add eax, 0xffffffd0
mov dword [ebp - 0xc0], eax
inc dword [edi]
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x30
jl 0x787a5c
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x39
jle 0x787970
jmp 0x787a5c
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x30
jl 0x787a01
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x39
jg 0x787a01
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x54
jmp 0x789696
mov ecx, dword [edi]
mov edx, dword [ebp + 0x30]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [edx + 0xc]
test byte [edx + eax], 0x10
jne 0x787a21
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1c
jmp 0x789696
mov ecx, dword [edi]
mov dword [ebp - 0x1b4], ecx
inc dword [edi]
jmp 0x787a2f
inc dword [edi]
mov ecx, dword [edi]
mov edx, dword [ebp + 0x30]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [edx + 0xc]
test byte [edx + eax], 0x10
jne 0x787a2d
mov eax, dword [edi]
sub eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x1ac], eax
cmp dword [ebp + 0x34], 0
je 0x787a5c
add dword [ebp - 0xc8], 2
cmp dword [ebp - 0xdc], 0
jle 0x787a73
mov cl, byte [ebp - 0xdc]
mov eax, dword [edi]
inc dword [edi]
cmp cl, byte [eax]
jne 0x787a80
mov edx, dword [edi]
inc dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x787a90
dec dword [edi]
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x1a
jmp 0x789696
cmp dword [ebp + 0x34], 0
jne 0x788c27
cmp dword [ebp - 0xc4], 0
jl 0x787b51
cmp dword [ebp - 0xc0], 0
jg 0x787abe
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x23
jmp 0x789696
cmp dword [ebp - 0xc4], 0
je 0x787af1
cmp dword [ebp - 0xc4], 0x2d
jne 0x787adf
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x40]
sub ecx, dword [ebp - 0xc0]
inc ecx
jmp 0x787aeb
mov ecx, dword [ebp + 0x30]
mov ecx, dword [ecx + 0x40]
add ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xc0], ecx
cmp dword [ebp - 0xc0], 0
jle 0x787b08
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x44]
cmp edx, dword [ebp - 0xc0]
jge 0x787b16
mov esi, dword [ebp + 0x14]
mov dword [esi], 0xf
jmp 0x789696
mov eax, dword [ebp - 0xc0]
sar eax, 8
mov byte [ebx + 4], al
mov dl, byte [ebp - 0xc0]
and dl, 0xff
mov byte [ebx + 5], dl
mov ecx, dword [ebp + 0x30]
mov ecx, dword [ecx + 0x4c]
cmp ecx, dword [ebp - 0xc0]
jge 0x788c27
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0xc0]
mov dword [eax + 0x4c], edx
jmp 0x788c27
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x2c]
mov dword [ebp - 0x1b8], eax
xor edx, edx
mov dword [ebp - 0x1a0], edx
jmp 0x787bb0
mov ecx, dword [ebp - 0x1ac]
push ecx
mov eax, dword [ebp - 0x1b8]
add eax, 2
push eax
mov edx, dword [ebp - 0x1b4]
push edx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x787b9e
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1ac]
cmp byte [ecx + eax + 2], 0
je 0x787bbe
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x34]
add dword [ebp - 0x1b8], ecx
inc dword [ebp - 0x1a0]
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x30]
cmp edx, dword [ebp - 0x1a0]
jg 0x787b67
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x30]
cmp eax, dword [ebp - 0x1a0]
jle 0x787ce8
mov edx, dword [ebp - 0x1a0]
xor eax, eax
mov dword [ebp - 0x1bc], edx
inc dword [ebp - 0x1a0]
mov dword [ebp - 0x1c0], 1
mov edx, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1b8]
movzx edx, byte [edx + 1]
mov al, byte [ecx]
shl eax, 8
or eax, edx
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0x4c]
cmp ecx, dword [ebp - 0xc0]
jge 0x787c76
mov ecx, dword [ebp + 0x30]
mov eax, dword [ebp - 0xc0]
mov dword [ecx + 0x4c], eax
jmp 0x787c76
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x34]
add dword [ebp - 0x1b8], ecx
mov eax, dword [ebp - 0x1ac]
push eax
mov edx, dword [ebp - 0x1b8]
add edx, 2
push edx
mov ecx, dword [ebp - 0x1b4]
push ecx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x787c84
mov eax, dword [ebp - 0x1b8]
mov edx, dword [ebp - 0x1ac]
cmp byte [eax + edx + 2], 0
jne 0x787c84
inc dword [ebp - 0x1c0]
inc dword [ebp - 0x1a0]
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x30]
cmp eax, dword [ebp - 0x1a0]
jg 0x787c27
cmp dword [ebp - 0x1c0], 1
jle 0x787ccc
mov edx, dword [ebp - 0x1bc]
sar edx, 8
mov byte [ebx + 4], dl
mov cl, byte [ebp - 0x1bc]
and cl, 0xff
mov byte [ebx + 5], cl
mov eax, dword [ebp - 0x1c0]
sar eax, 8
mov byte [ebx + 6], al
mov dl, byte [ebp - 0x1c0]
and dl, 0xff
mov byte [ebx + 7], dl
add dword [ebp - 0xc8], 2
inc byte [ebx + 3]
jmp 0x788c27
mov ecx, dword [ebp - 0xc0]
sar ecx, 8
mov byte [ebx + 4], cl
mov al, byte [ebp - 0xc0]
and al, 0xff
mov byte [ebx + 5], al
jmp 0x788c27
cmp dword [ebp - 0xdc], 0
je 0x787d04
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x789696
mov ecx, dword [ebp - 0x1b4]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x52
jne 0x787e02
xor edx, edx
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0x1a0], 1
mov ecx, dword [ebp - 0x1a0]
cmp ecx, dword [ebp - 0x1ac]
jge 0x787dce
mov eax, dword [ebp - 0x1b4]
mov edx, dword [ebp - 0x1a0]
xor ecx, ecx
mov cl, byte [eax + edx]
cmp ecx, 0x30
jl 0x787d67
mov eax, dword [ebp - 0x1b4]
mov edx, dword [ebp - 0x1a0]
xor ecx, ecx
mov cl, byte [eax + edx]
cmp ecx, 0x39
jle 0x787d75
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x789696
cmp dword [ebp - 0xc0], 0xccccccb
jle 0x787d8f
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3d
jmp 0x789696
mov ecx, dword [ebp - 0x1b4]
mov eax, dword [ebp - 0x1a0]
xor edx, edx
mov dl, byte [ecx + eax]
mov eax, dword [ebp - 0xc0]
add eax, eax
lea eax, [eax + eax*4]
add edx, eax
add edx, 0xffffffd0
mov dword [ebp - 0xc0], edx
inc dword [ebp - 0x1a0]
mov edx, dword [ebp - 0x1a0]
cmp edx, dword [ebp - 0x1ac]
jl 0x787d3b
cmp dword [ebp - 0xc0], 0
jne 0x787de1
mov dword [ebp - 0xc0], 0xffff
mov byte [ebx + 3], 0x8f
mov ecx, dword [ebp - 0xc0]
sar ecx, 8
mov byte [ebx + 4], cl
mov cl, byte [ebp - 0xc0]
and cl, 0xff
mov byte [ebx + 5], cl
jmp 0x788c27
cmp dword [ebp - 0x1ac], 6
jne 0x787e38
push 6
push str.DEFINE
mov eax, dword [ebp - 0x1b4]
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x787e38
mov byte [ebx + 3], 0x91
mov dword [ebp - 0xc8], 1
jmp 0x788c27
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x789696
mov esi, 0x7d
mov eax, dword [ebp + 0x30]
inc dword [eax + 0x5c]
inc dword [edi]
jmp 0x788c27
inc dword [edi]
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
jne 0x787eb8
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2a
je 0x787eb8
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x2b
je 0x787eb8
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3f
je 0x787eb8
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x7b
jne 0x787eaa
mov edx, dword [edi]
add edx, 2
push edx
call fcn.00781748
pop ecx
test eax, eax
jne 0x787eb8
mov byte [ebx], 0x9d
inc ebx
xor ecx, ecx
mov dword [ebp - 0x74], ecx
jmp 0x78968f
mov esi, 0x7e
mov eax, dword [ebp + 0x30]
inc dword [eax + 0x5c]
jmp 0x788c27
mov edx, dword [edi]
mov cl, byte [edx + 1]
sub cl, 0x21
je 0x787eec
sub cl, 0x1c
je 0x787ed9
jmp 0x787eff
mov esi, 0x7f
mov eax, dword [ebp + 0x30]
inc dword [eax + 0x5c]
add dword [edi], 2
jmp 0x788c27
mov esi, 0x80
mov eax, dword [ebp + 0x30]
inc dword [eax + 0x5c]
add dword [edi], 2
jmp 0x788c27
mov edx, dword [edi]
mov eax, dword [ebp + 0x30]
xor ecx, ecx
mov cl, byte [edx + 1]
mov edx, dword [eax + 0xc]
test byte [edx + ecx], 0x10
jne case.0x7876ce.39
inc dword [edi]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x18
jmp 0x789696
mov esi, 0x81
inc dword [edi]
jmp 0x788c27
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x4c], 1
mov byte [ebx], 0x76
inc ebx
xor eax, eax
mov dword [ebp - 0x1c4], eax
inc dword [edi]
jmp 0x787f6f
mov edx, dword [ebp - 0x1c4]
mov ecx, dword [edi]
add edx, edx
xor eax, eax
mov al, byte [ecx]
lea edx, [edx + edx*4]
add edx, eax
add edx, 0xffffffd0
mov dword [ebp - 0x1c4], edx
inc dword [edi]
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x30
jl 0x787f85
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x39
jle 0x787f51
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x787f9e
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x27
jmp 0x789696
cmp dword [ebp - 0x1c4], 0xff
jle 0x787fb8
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x26
jmp 0x789696
mov cl, byte [ebp - 0x1c4]
mov byte [ebx], cl
inc ebx
mov eax, dword [ebp + 0x30]
mov edx, dword [edi]
sub edx, dword [eax + 0x18]
inc edx
sar edx, 8
mov byte [ebx], dl
mov ecx, dword [ebp + 0x30]
mov eax, dword [edi]
sub eax, dword [ecx + 0x18]
inc eax
and al, 0xff
mov byte [ebx + 1], al
mov byte [ebx + 2], 0
mov byte [ebx + 3], 0
add ebx, 4
xor edx, edx
mov dword [ebp - 0x74], edx
jmp 0x78968f
inc dword [edi]
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3d
je 0x78800a
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3e
jne 0x788030
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3e
sete cl
and ecx, 1
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xdc], 0x29
jmp 0x788316
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3c
je case.0x7876ce.39
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x29
jmp 0x789696
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3c
jne 0x78805b
mov ecx, 0x3e
jmp 0x788060
mov ecx, 0x27
mov dword [ebp - 0xdc], ecx
inc dword [edi]
mov eax, dword [edi]
mov dword [ebp - 0x1b4], eax
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x30
jl 0x788098
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x39
jg 0x788098
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x54
jmp 0x789696
inc dword [edi]
mov eax, dword [edi]
mov ecx, dword [ebp + 0x30]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ecx + 0xc]
test byte [eax + edx], 0x10
jne 0x788096
mov edx, dword [edi]
sub edx, dword [ebp - 0x1b4]
mov dword [ebp - 0x1ac], edx
cmp dword [ebp + 0x34], 0
je 0x7882fb
mov ecx, dword [ebp + 0x30]
mov ecx, dword [ecx + 0x40]
inc ecx
mov dword [ebp - 0x1cc], ecx
mov al, byte [ebp - 0xdc]
mov edx, dword [edi]
cmp al, byte [edx]
je 0x7880e9
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x2a
jmp 0x789696
mov eax, dword [ebp + 0x30]
cmp dword [eax + 0x30], 0x2710
jl 0x788103
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x31
jmp 0x789696
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp - 0x1ac]
add ecx, 3
cmp ecx, dword [eax + 0x34]
jle 0x78813a
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1ac]
add edx, 3
mov dword [ecx + 0x34], edx
cmp dword [ebp - 0x1ac], 0x20
jle 0x78813a
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x30
jmp 0x789696
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x28]
mov dword [ebp - 0x1c8], edx
xor ecx, ecx
mov dword [ebp - 0x1a0], ecx
jmp 0x7881e4
mov ecx, dword [ebp - 0x1c8]
mov eax, dword [ecx + 4]
cmp eax, dword [ebp - 0x1ac]
jne 0x7881b8
mov edx, dword [ebp - 0x1ac]
push edx
mov ecx, dword [ebp - 0x1c8]
mov eax, dword [ecx]
push eax
mov edx, dword [ebp - 0x1b4]
push edx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x7881b8
mov ecx, dword [ebp - 0x1c8]
mov eax, dword [ecx + 8]
cmp eax, dword [ebp - 0x1cc]
je 0x7881f6
test byte [ebp - 0x46], 8
jne 0x7881ac
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x2b
jmp 0x789696
mov ecx, dword [ebp + 0x30]
mov dword [ecx + 0x78], 1
jmp 0x7881d7
mov eax, dword [ebp - 0x1c8]
mov edx, dword [eax + 8]
cmp edx, dword [ebp - 0x1cc]
jne 0x7881d7
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x41
jmp 0x789696
inc dword [ebp - 0x1a0]
add dword [ebp - 0x1c8], 0xc
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x30]
cmp edx, dword [ebp - 0x1a0]
jg 0x788153
mov ecx, dword [ebp + 0x30]
mov ecx, dword [ecx + 0x30]
cmp ecx, dword [ebp - 0x1a0]
jg 0x7882fb
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 0x30]
cmp edx, dword [eax + 0x30]
jg 0x7882ab
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x38]
add ecx, ecx
mov dword [ebp - 0x1d0], ecx
mov ecx, dword [ebp - 0x1d0]
shl ecx, 2
lea ecx, [ecx + ecx*2]
push ecx
call dword [0x874250]
pop ecx
mov dword [ebp - 0x1d4], eax
cmp dword [ebp - 0x1d4], 0
jne 0x788259
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x15
jmp 0x789696
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x38]
shl ecx, 2
lea ecx, [ecx + ecx*2]
push ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x28]
push edx
mov ecx, dword [ebp - 0x1d4]
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0x30]
cmp dword [eax + 0x38], 0x14
jle 0x788293
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x28]
push ecx
call dword [0x874254]
pop ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0x1d4]
mov dword [eax + 0x28], edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [ebp - 0x1d0]
mov dword [ecx + 0x38], eax
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
mov ecx, dword [edx + 0x30]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 0x1b4]
lea ecx, [ecx + ecx*2]
mov dword [edx + ecx*4], eax
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
mov ecx, dword [edx + 0x30]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 0x1ac]
lea ecx, [ecx + ecx*2]
mov dword [edx + ecx*4 + 4], eax
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
mov ecx, dword [edx + 0x30]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 0x1cc]
lea ecx, [ecx + ecx*2]
mov dword [edx + ecx*4 + 8], eax
mov edx, dword [ebp + 0x30]
inc dword [edx + 0x30]
inc dword [edi]
jmp 0x788c00
mov dword [ebp - 0xdc], 0x29
mov dword [ebp - 0xa8], 1
inc dword [edi]
mov ecx, dword [edi]
mov dword [ebp - 0x1b4], ecx
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x30
jl 0x788348
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x39
jg 0x788348
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x54
jmp 0x789696
inc dword [edi]
mov edx, dword [edi]
mov eax, dword [ebp + 0x30]
xor ecx, ecx
mov cl, byte [edx]
mov edx, dword [eax + 0xc]
test byte [edx + ecx], 0x10
jne 0x788346
mov ecx, dword [edi]
sub ecx, dword [ebp - 0x1b4]
mov dword [ebp - 0x1ac], ecx
cmp dword [ebp + 0x34], 0
je 0x7884c9
xor eax, eax
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0x1ac], 0
jne 0x788391
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3e
jmp 0x789696
mov cl, byte [ebp - 0xdc]
mov eax, dword [edi]
cmp cl, byte [eax]
je 0x7883ab
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x2a
jmp 0x789696
cmp dword [ebp - 0x1ac], 0x20
jle 0x7883c2
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x30
jmp 0x789696
cmp dword [ebp - 0xa8], 0
jne 0x7883d1
mov eax, dword [ebp + 0x30]
inc dword [eax + 0x54]
mov edx, dword [ebp + 0x34]
add dword [edx], 2
mov ecx, dword [ebp + 0x34]
add dword [ecx], 0xc
mov ecx, dword [ebp + 0x30]
cmp dword [ecx + 0x7c], 0
je 0x7883ec
mov eax, dword [ebp + 0x34]
add dword [eax], 0xc
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x28]
mov dword [ebp - 0x1d8], ecx
xor eax, eax
mov dword [ebp - 0x1a0], eax
jmp 0x7884b2
mov edx, dword [ebp - 0x1d8]
mov ecx, dword [edx + 4]
cmp ecx, dword [ebp - 0x1ac]
jne 0x7884a5
mov eax, dword [ebp - 0x1ac]
push eax
mov edx, dword [ebp - 0x1d8]
mov ecx, dword [edx]
push ecx
mov eax, dword [ebp - 0x1b4]
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x7884a5
mov edx, dword [ebp - 0x1d8]
mov ecx, dword [edx + 8]
mov dword [ebp - 0xc0], ecx
cmp dword [ebp - 0xa8], 0
jne 0x788573
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x24]
mov dword [ebp - 0x1dc], edx
cmp dword [ebp - 0x1dc], 0
je 0x7884a5
mov ecx, dword [ebp - 0x1dc]
movzx eax, word [ecx + 4]
cmp eax, dword [ebp - 0xc0]
jne 0x78848e
mov edx, dword [ebp - 0x1dc]
mov word [edx + 6], 1
jmp 0x7884a5
mov ecx, dword [ebp - 0x1dc]
mov eax, dword [ecx]
mov dword [ebp - 0x1dc], eax
cmp dword [ebp - 0x1dc], 0
jne 0x78846e
inc dword [ebp - 0x1a0]
add dword [ebp - 0x1d8], 0xc
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x30]
cmp ecx, dword [ebp - 0x1a0]
jg 0x788405
jmp 0x788573
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0x1b8], edx
xor ecx, ecx
mov dword [ebp - 0x1a0], ecx
jmp 0x788528
mov eax, dword [ebp - 0x1ac]
push eax
mov edx, dword [ebp - 0x1b8]
add edx, 2
push edx
mov ecx, dword [ebp - 0x1b4]
push ecx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x788516
mov eax, dword [ebp - 0x1b8]
mov edx, dword [ebp - 0x1ac]
cmp byte [eax + edx + 2], 0
je 0x788536
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x34]
add dword [ebp - 0x1b8], eax
inc dword [ebp - 0x1a0]
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x30]
cmp ecx, dword [ebp - 0x1a0]
jg 0x7884df
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x30]
cmp edx, dword [ebp - 0x1a0]
jle 0x788565
mov edx, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1b8]
xor eax, eax
movzx edx, byte [edx + 1]
mov al, byte [ecx]
shl eax, 8
or eax, edx
mov dword [ebp - 0xc0], eax
jmp 0x788573
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x789696
cmp dword [ebp - 0xa8], 0
jne 0x788910
cmp dword [ebp + 0x34], 0
jne 0x78914f
mov ecx, dword [ebp + 0x30]
cmp dword [ecx + 0x78], 0
je 0x78914f
mov dword [ebp - 0x1e0], 1
mov ecx, dword [ebp - 0x1a0]
mov dword [ebp - 0x1e4], ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x34]
add edx, dword [ebp - 0x1b8]
mov dword [ebp - 0x1e8], edx
inc dword [ebp - 0x1a0]
jmp 0x78860f
mov eax, dword [ebp - 0x1b8]
mov edx, dword [ebp - 0x1e8]
add eax, 2
add edx, 2
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x7885f5
test cl, cl
je 0x7885f7
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x7885f5
add eax, 2
add edx, 2
test cl, cl
jne 0x7885d9
jne 0x78861d
inc dword [ebp - 0x1e0]
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x34]
add dword [ebp - 0x1e8], eax
inc dword [ebp - 0x1a0]
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x30]
cmp ecx, dword [ebp - 0x1a0]
jg 0x7885c7
cmp dword [ebp - 0x1e0], 1
jle 0x78914f
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x788637
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x74], ebx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp + 0x30]
sub edx, dword [eax + 0x10]
mov dword [ebp - 0x7c], edx
test byte [ebp - 0x48], 1
je 0x788653
mov dl, 0x74
jmp 0x788655
mov dl, 0x73
mov byte [ebx], dl
inc ebx
mov eax, dword [ebp - 0x1e4]
shr eax, 8
mov byte [ebx], al
mov cl, byte [ebp - 0x1e4]
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
mov ecx, dword [ebp - 0x1e0]
sar ecx, 8
mov byte [ebx], cl
mov al, byte [ebp - 0x1e0]
and al, 0xff
mov byte [ebx + 1], al
add ebx, 2
mov edx, dword [ebp - 0x1b8]
cmp edx, dword [ebp - 0x1e8]
jae 0x78968f
mov edx, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1b8]
xor eax, eax
movzx edx, byte [edx + 1]
mov al, byte [ecx]
shl eax, 8
or eax, edx
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0x20
jge 0x7886d4
mov ecx, dword [ebp - 0xc0]
mov eax, 1
shl eax, cl
jmp 0x7886d9
mov eax, 1
mov edx, dword [ebp + 0x30]
or dword [edx + 0x50], eax
mov ecx, dword [ebp + 0x30]
mov ecx, dword [ecx + 0x4c]
cmp ecx, dword [ebp - 0xc0]
jge 0x7886f9
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0xc0]
mov dword [eax + 0x4c], edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x1ec], eax
cmp dword [ebp - 0x1ec], 0
je 0x788745
mov edx, dword [ebp - 0x1ec]
movzx ecx, word [edx + 4]
cmp ecx, dword [ebp - 0xc0]
jne 0x78872e
mov eax, dword [ebp - 0x1ec]
mov word [eax + 6], 1
jmp 0x788745
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [edx]
mov dword [ebp - 0x1ec], ecx
cmp dword [ebp - 0x1ec], 0
jne 0x78870e
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x34]
add dword [ebp - 0x1b8], edx
mov ecx, dword [ebp - 0x1b8]
cmp ecx, dword [ebp - 0x1e8]
jb 0x78869d
jmp 0x78968f
xor eax, eax
mov dword [ebp - 0xc0], eax
inc dword [edi]
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x788910
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1d
jmp 0x789696
mov dword [ebp - 0xdc], 0x29
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
mov dword [ebp - 0xc4], ecx
cmp ecx, 0x2b
jne 0x7887dc
inc dword [edi]
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x30
jl 0x7887cc
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x39
jle 0x788807
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3f
jmp 0x789696
cmp dword [ebp - 0xc4], 0x2d
jne 0x788807
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x30
jl case.0x7876ce.34
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
cmp ecx, 0x39
jg case.0x7876ce.34
inc dword [edi]
xor eax, eax
mov dword [ebp - 0xc0], eax
jmp 0x788862
cmp dword [ebp - 0xc0], 0xccccccb
jle 0x788844
jmp 0x788821
inc dword [edi]
mov edx, dword [edi]
movzx esi, byte [edx]
cmp esi, 0x30
jl 0x788836
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x39
jle 0x78881f
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x3d
jmp 0x789696
mov ecx, dword [ebp - 0xc0]
mov eax, dword [edi]
add ecx, ecx
xor edx, edx
mov dl, byte [eax]
lea ecx, [ecx + ecx*4]
add ecx, edx
add ecx, 0xffffffd0
mov dword [ebp - 0xc0], ecx
inc dword [edi]
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x30
jl 0x788878
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x39
jle 0x788811
mov al, byte [ebp - 0xdc]
mov edx, dword [edi]
cmp al, byte [edx]
je 0x788892
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x1d
jmp 0x789696
cmp dword [ebp - 0xc4], 0x2d
jne 0x7888de
cmp dword [ebp - 0xc0], 0
jne 0x7888b2
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x789696
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x40]
sub ecx, dword [ebp - 0xc0]
inc ecx
mov dword [ebp - 0xc0], ecx
cmp dword [ebp - 0xc0], 0
jg 0x788910
mov esi, dword [ebp + 0x14]
mov dword [esi], 0xf
jmp 0x789696
cmp dword [ebp - 0xc4], 0x2b
jne 0x788910
cmp dword [ebp - 0xc0], 0
jne 0x7888fe
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x789696
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x40]
add ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0x74], ebx
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x20]
sub eax, dword [edx + 0x10]
mov dword [ebp - 0x7c], eax
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x1f0], eax
cmp dword [ebp + 0x34], 0
jne 0x788a52
mov byte [ebx], 0
cmp dword [ebp - 0xc0], 0
je 0x788964
mov edx, dword [ebp - 0xc0]
push edx
mov ecx, dword [ebp - 0x80]
push ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x14]
push edx
call fcn.00782690
add esp, 0xc
mov dword [ebp - 0x1f0], eax
cmp dword [ebp - 0x1f0], 0
jne 0x788a02
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x44]
cmp eax, dword [ebp - 0xc0]
jge 0x78898d
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x789696
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x14]
add eax, dword [ebp - 0xc0]
mov dword [ebp - 0x1f0], eax
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
mov ecx, dword [edx + 0x10]
mov edx, dword [ebp + 0x30]
add ecx, dword [eax + 0x3c]
add ecx, 0xffffff9c
cmp ecx, dword [edx + 0x20]
ja 0x7889d1
mov ecx, dword [ebp + 0x30]
push ecx
call fcn.007816c0
pop ecx
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x789696
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x30]
lea ecx, [ebx + 1]
sub ecx, dword [eax + 0x14]
mov esi, dword [edx + 0x20]
sar ecx, 8
lea eax, [ebx + 1]
mov byte [esi], cl
mov edx, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
sub eax, dword [edx + 0x14]
mov edx, dword [ecx + 0x20]
and al, 0xff
mov byte [edx + 1], al
mov eax, dword [ebp + 0x30]
add dword [eax + 0x20], 2
jmp 0x788a52
mov ecx, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x1f0]
xor edx, edx
movzx ecx, byte [ecx + 1]
shl ecx, 8
mov dl, byte [eax + 2]
or ecx, edx
jne 0x788a52
cmp dword [ebp + 0x2c], 0
jg 0x788a52
mov ecx, dword [ebp + 0x30]
push ecx
mov eax, dword [ebp - 0x80]
push eax
mov edx, dword [ebp + 0x28]
push edx
push ebx
mov ecx, dword [ebp - 0x1f0]
push ecx
call fcn.00782e04
add esp, 0x14
test eax, eax
je 0x788a52
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x28
jmp 0x789696
mov byte [ebx], 0x75
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp - 0x1f0]
sub eax, dword [edx + 0x14]
sar eax, 8
mov byte [ebx + 1], al
mov edx, dword [ebp + 0x30]
mov ecx, dword [ebp - 0x1f0]
sub ecx, dword [edx + 0x14]
and cl, 0xff
mov byte [ebx + 2], cl
add ebx, 3
xor ecx, ecx
mov dword [ebp - 0x64], ecx
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x78968f
mov dword [ebp - 0x24], 0xffffffff
jmp 0x78968f
xor eax, eax
lea edx, [ebp - 0x1a4]
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 0x1b0], edx
jmp 0x788b66
mov ecx, dword [edi]
inc dword [edi]
movzx ecx, byte [ecx]
cmp ecx, 0x69
jg 0x788ada
je 0x788b11
sub ecx, 0x2d
je 0x788aeb
sub ecx, 0x1d
je 0x788af9
sub ecx, 0xb
je 0x788b3d
sub ecx, 3
je 0x788b4b
jmp 0x788b56
sub ecx, 0x6d
je 0x788b1c
sub ecx, 6
je 0x788b27
sub ecx, 5
je 0x788b32
jmp 0x788b56
lea eax, [ebp - 0x1a8]
mov dword [ebp - 0x1b0], eax
jmp 0x788b66
mov edx, dword [ebp - 0x1b0]
or dword [edx], 0x80000
mov ecx, dword [ebp + 0x30]
or dword [ecx + 0x64], 0x400
jmp 0x788b66
mov eax, dword [ebp - 0x1b0]
or dword [eax], 1
jmp 0x788b66
mov edx, dword [ebp - 0x1b0]
or dword [edx], 2
jmp 0x788b66
mov ecx, dword [ebp - 0x1b0]
or dword [ecx], 4
jmp 0x788b66
mov eax, dword [ebp - 0x1b0]
or dword [eax], 8
jmp 0x788b66
mov edx, dword [ebp - 0x1b0]
or dword [edx], 0x200
jmp 0x788b66
mov ecx, dword [ebp - 0x1b0]
or dword [ecx], 0x40
jmp 0x788b66
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xc
dec dword [edi]
jmp 0x789696
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x788b80
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3a
jne 0x788ab6
mov ecx, dword [ebp - 0x48]
or ecx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 0x1a8]
not eax
and ecx, eax
mov dword [ebp - 0xbc], ecx
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
jne 0x788bea
test byte [ebp - 0xbb], 2
setne al
and eax, 1
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
xor edx, 1
mov dword [ebp - 0x18], edx
test byte [ebp - 0xbc], 1
je 0x788bcd
mov ecx, 1
jmp 0x788bcf
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp + 8]
mov dword [edx], eax
xor ecx, ecx
mov dword [ebp - 0x74], ecx
jmp 0x78968f
mov esi, 0x83
inc dword [edi]
jmp 0x788c27
test byte [ebp - 0x47], 0x10
je 0x788c00
mov esi, 0x83
jmp 0x788c27
mov eax, dword [ebp + 0x30]
inc dword [eax + 0x40]
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x40]
shr ecx, 8
mov byte [ebx + 3], cl
mov ecx, dword [ebp + 0x30]
mov al, byte [ecx + 0x40]
and al, 0xff
mov byte [ebx + 4], al
mov dword [ebp - 0xc8], 2
mov edx, dword [ebp + 0x30]
inc dword [edx + 0x58]
mov ecx, dword [edx + 0x58]
cmp ecx, 0xfa
jle 0x788c46
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x52
jmp 0x789696
cmp esi, 0x7d
jl 0x788c71
cmp esi, 0x80
jg 0x788c71
mov edx, dword [ebp + 0x30]
cmp dword [edx + 0x80], 0
je 0x788c71
xor ecx, ecx
mov dword [ebp - 0x74], ecx
mov eax, dword [ebp + 0x30]
xor edx, edx
mov dword [eax + 0x80], edx
jmp 0x788c83
mov dword [ebp - 0x74], ebx
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x20]
sub eax, dword [edx + 0x10]
mov dword [ebp - 0x7c], eax
mov ecx, esi
mov byte [ebx], cl
mov dword [ebp - 0x5c], ebx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x68]
mov dword [ebp - 0x44], edx
xor edx, edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x40]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x50], edx
cmp dword [ebp + 0x34], 0
jne 0x788cae
xor ecx, ecx
jmp 0x788cb1
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0xd4]
mov eax, dword [ebp + 0x30]
cmp esi, 0x87
push eax
lea eax, [ebp - 0xcc]
mov edx, dword [ebp + 0x28]
push edx
push ecx
push eax
lea edx, [ebp - 0xd8]
push edx
lea ecx, [ebp - 0xd0]
push ecx
jne 0x788ce5
mov eax, 1
jmp 0x788ce7
xor eax, eax
add eax, dword [ebp + 0x2c]
cmp esi, 0x7f
push eax
mov edx, dword [ebp - 0xc8]
push edx
mov ecx, dword [ebp - 0xac]
push ecx
je 0x788d0a
cmp esi, 0x80
je 0x788d0a
xor ecx, ecx
jmp 0x788d0f
mov ecx, 1
push ecx
lea edx, [ebp - 0x5c]
mov eax, dword [ebp + 0x14]
push eax
push edi
push edx
mov ecx, dword [ebp - 0xbc]
push ecx
call fcn.007896b0
add esp, 0x3c
test eax, eax
je 0x789696
mov eax, dword [ebp + 0x30]
dec dword [eax + 0x58]
cmp esi, 0x81
jne 0x788d4f
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x40]
cmp ecx, dword [ebp - 0xe4]
ja 0x788d4f
mov byte [ebx], 0x82
cmp esi, 0x7d
jl 0x788d62
cmp esi, 0x80
jg 0x788d62
mov eax, dword [ebp + 0x30]
dec dword [eax + 0x5c]
cmp esi, 0x87
jne 0x788e15
cmp dword [ebp + 0x34], 0
jne 0x788e15
mov dword [ebp - 0x1f4], ebx
xor edx, edx
mov dword [ebp - 0x1f8], edx
inc dword [ebp - 0x1f8]
xor eax, eax
mov edx, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1f4]
movzx edx, byte [edx + 2]
mov al, byte [ecx + 1]
shl eax, 8
or eax, edx
add dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 0x1f4]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x78
jne 0x788d86
xor ecx, ecx
mov cl, byte [ebx + 3]
cmp ecx, 0x91
jne 0x788de6
cmp dword [ebp - 0x1f8], 1
jle 0x788ddf
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x36
jmp 0x789696
mov esi, 0x91
jmp 0x788e15
cmp dword [ebp - 0x1f8], 2
jle 0x788dfd
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1b
jmp 0x789696
cmp dword [ebp - 0x1f8], 1
jne 0x788e15
or edx, 0xffffffff
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0xd8], edx
mov eax, dword [edi]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x29
je 0x788e2e
mov esi, dword [ebp + 0x14]
mov dword [esi], 0xe
jmp 0x789696
cmp dword [ebp + 0x34], 0
je 0x788e7f
mov eax, dword [ebp + 0x34]
mov edx, 0x7fffffeb
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffffa
sub edx, dword [eax]
cmp edx, ecx
jge 0x788e56
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x14
jmp 0x789696
mov edx, dword [ebp + 0x34]
mov eax, dword [ebp - 0x50]
add eax, 0xfffffffa
inc ebx
add dword [edx], eax
mov byte [ebx], 0
mov byte [ebx + 1], 3
add ebx, 2
mov byte [ebx], 0x78
inc ebx
mov byte [ebx], 0
mov byte [ebx + 1], 3
add ebx, 2
jmp 0x78968f
mov ebx, dword [ebp - 0x5c]
cmp esi, 0x91
je 0x78968f
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
xor eax, eax
mov edx, dword [ebp - 0x28]
cmp esi, 0x81
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x64], eax
jl 0x788f42
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x788ef1
cmp dword [ebp - 0xd8], 0
jl 0x788ee1
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x64], 1
jmp 0x788ee8
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x38], 0xffffffff
jmp 0x788f1e
cmp dword [ebp - 0xd8], 0
jl 0x788f1e
cmp dword [ebp - 0xd4], 0
jge 0x788f1e
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xcc], eax
mov edx, dword [ebp - 0xd8]
or edx, dword [ebp - 0x44]
mov dword [ebp - 0xd4], edx
cmp dword [ebp - 0xd4], 0
jl 0x78968f
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x28], eax
jmp 0x78968f
cmp esi, 0x7d
jne 0x78968f
cmp dword [ebp - 0xd4], 0
jl 0x78968f
cmp dword [ebp - 0xd8], 0
jl 0x78968f
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x28], ecx
jmp 0x78968f
mov eax, dword [edi]
mov dword [ebp - 0x6c], eax
push 0
mov edx, dword [ebp - 0x48]
push edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x40]
lea ecx, [ebp - 0xe8]
push eax
mov edx, dword [ebp + 0x14]
push edx
push ecx
push edi
call fcn.007817d8
add esp, 0x18
mov esi, eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x789696
test esi, esi
jne 0x788fbf
mov esi, dword [ebp - 0xe8]
jmp 0x78932f
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x788fd6
cmp esi, 5
jle 0x788fd6
cmp esi, 0x17
jge 0x788fd6
mov dword [ebp - 0x24], 0xffffffff
mov eax, dword [ebp - 0x1c]
cmp esi, 0x1b
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x34], ecx
jne 0x7890cb
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp + 0x30]
sub edx, dword [eax + 0x10]
mov dword [ebp - 0x7c], edx
inc dword [edi]
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3c
jne 0x78901a
mov ecx, 0x3e
jmp 0x78901f
mov ecx, 0x27
mov dword [ebp - 0xdc], ecx
xor eax, eax
mov dword [ebp - 0xc8], eax
xor edx, edx
mov dword [ebp - 0xac], edx
mov ecx, dword [edi]
xor eax, eax
mov al, byte [ecx + 1]
mov dword [ebp - 0x200], eax
cmp dword [ebp - 0x200], 0x2b
je 0x789075
cmp dword [ebp - 0x200], 0x2d
je 0x789075
cmp dword [ebp - 0x200], 0x30
jb 0x789066
cmp dword [ebp - 0x200], 0x39
jbe 0x789075
mov dword [ebp - 0xa8], 1
jmp 0x788316
mov edx, dword [edi]
add edx, 2
mov dword [ebp - 0x1fc], edx
jmp 0x789088
inc dword [ebp - 0x1fc]
mov ecx, dword [ebp - 0x1fc]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x30
jl 0x7890a6
mov edx, dword [ebp - 0x1fc]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x39
jle 0x789082
mov al, byte [ebp - 0xdc]
mov edx, dword [ebp - 0x1fc]
cmp al, byte [edx]
je 0x7890c4
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x39
jmp 0x789696
inc dword [edi]
jmp 0x7887a3
cmp esi, 0x1c
jne 0x78913f
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3c
je 0x789101
mov ecx, dword [edi]
movzx ecx, byte [ecx + 1]
cmp ecx, 0x27
je 0x789101
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x7b
je 0x789101
mov esi, dword [ebp + 0x14]
mov dword [esi], 0x45
jmp 0x789696
xor eax, eax
mov dword [ebp - 0xa8], eax
inc dword [edi]
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3c
jne 0x78911d
mov ecx, 0x3e
jmp 0x789134
mov eax, dword [edi]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x27
jne 0x78912f
mov ecx, 0x27
jmp 0x789134
mov ecx, 0x7d
mov dword [ebp - 0xdc], ecx
jmp 0x788316
test esi, esi
jge 0x78922c
neg esi
mov dword [ebp - 0xc0], esi
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x78915c
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x74], ebx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp + 0x30]
sub edx, dword [eax + 0x10]
mov dword [ebp - 0x7c], edx
test byte [ebp - 0x48], 1
je 0x789178
mov dl, 0x72
jmp 0x78917a
mov dl, 0x71
mov byte [ebx], dl
inc ebx
mov eax, dword [ebp - 0xc0]
sar eax, 8
mov byte [ebx], al
mov cl, byte [ebp - 0xc0]
and cl, 0xff
mov byte [ebx + 1], cl
add ebx, 2
cmp dword [ebp - 0xc0], 0x20
jge 0x7891af
mov ecx, dword [ebp - 0xc0]
mov eax, 1
shl eax, cl
jmp 0x7891b4
mov eax, 1
mov edx, dword [ebp + 0x30]
or dword [edx + 0x50], eax
mov ecx, dword [ebp + 0x30]
mov ecx, dword [ecx + 0x4c]
cmp ecx, dword [ebp - 0xc0]
jge 0x7891d4
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp - 0xc0]
mov dword [eax + 0x4c], edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x204], eax
cmp dword [ebp - 0x204], 0
je 0x78968f
mov edx, dword [ebp - 0x204]
movzx ecx, word [edx + 4]
cmp ecx, dword [ebp - 0xc0]
jne 0x789210
mov eax, dword [ebp - 0x204]
mov word [eax + 6], 1
jmp 0x78968f
mov edx, dword [ebp - 0x204]
mov ecx, dword [edx]
mov dword [ebp - 0x204], ecx
cmp dword [ebp - 0x204], 0
jne 0x7891ed
jmp 0x78968f
cmp esi, 0xf
je 0x789236
cmp esi, 0x10
jne 0x7892b3
xor eax, eax
xor edx, edx
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x210], edx
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x210]
push ecx
push eax
lea edx, [ebp - 0x20c]
lea ecx, [ebp - 0x208]
push edx
push ecx
push edi
call fcn.00782068
add esp, 0x14
test eax, eax
je 0x789696
mov dword [ebp - 0x74], ebx
mov eax, dword [ebp + 0x30]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp + 0x30]
sub edx, dword [eax + 0x10]
mov dword [ebp - 0x7c], edx
cmp esi, 0x10
sete dl
and edx, 1
cmp edx, dword [ebp - 0x208]
je 0x789297
mov cl, 0x10
jmp 0x789299
mov cl, 0xf
mov byte [ebx], cl
inc ebx
mov al, byte [ebp - 0x20c]
mov byte [ebx], al
inc ebx
mov dl, byte [ebp - 0x210]
mov byte [ebx], dl
inc ebx
jmp 0x78968f
cmp esi, 5
je 0x7892c2
cmp esi, 4
je 0x7892c2
cmp esi, 1
jne 0x7892d5
mov ecx, dword [ebp + 0x30]
cmp dword [ecx + 0x48], 0
jne 0x7892d5
mov eax, dword [ebp + 0x30]
mov dword [eax + 0x48], 1
cmp esi, 0x1d
jl 0x7892f4
cmp esi, 0x22
jg 0x7892f4
mov edx, dword [edi]
inc edx
mov dword [ebp - 0x70], edx
mov ecx, dword [esi*4 + 0x87447c]
dec ecx
mov dword [edi], ecx
jmp 0x78968f
cmp esi, 5
jle 0x789302
cmp esi, 0x17
jge 0x789302
mov eax, ebx
jmp 0x789304
xor eax, eax
mov dword [ebp - 0x74], eax
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x30]
mov ecx, dword [edx + 0x20]
sub ecx, dword [eax + 0x10]
mov dword [ebp - 0x7c], ecx
cmp dword [ebp - 0x80], 0
jne 0x789325
cmp esi, 0xe
jne 0x789325
mov dl, 0xd
jmp 0x789327
mov edx, esi
mov byte [ebx], dl
inc ebx
jmp 0x78968f
cmp dword [ebp - 0x80], 0
je 0x789352
cmp esi, 0x7f
jbe 0x789352
lea eax, [ebp - 0xf0]
push eax
push esi
call fcn.0079d8a4
add esp, 8
mov dword [ebp - 0xe0], eax
jmp 0x7893b6
mov ecx, esi
mov byte [ebp - 0xf0], cl
mov dword [ebp - 0xe0], 1
jmp 0x7893b6
mov dword [ebp - 0xe0], 1
mov ecx, esi
mov byte [ebp - 0xf0], cl
cmp dword [ebp - 0x80], 0
je 0x7893b6
cmp esi, 0xc0
jb 0x7893b6
jmp 0x7893a1
inc dword [edi]
mov eax, dword [edi]
mov dl, byte [eax]
mov eax, dword [ebp - 0xe0]
mov byte [ebp + eax - 0xf0], dl
inc dword [ebp - 0xe0]
mov edx, dword [edi]
xor ecx, ecx
mov cl, byte [edx + 1]
and ecx, 0xc0
cmp ecx, 0x80
je 0x789388
mov dword [ebp - 0x74], ebx
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x20]
sub eax, dword [edx + 0x10]
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x80], 0
je 0x789583
test byte [ebp - 0x48], 1
je 0x789583
movzx esi, byte [ebp - 0xf0]
cmp esi, 0xc0
jb 0x78951f
test esi, 0x20
jne 0x78940f
and esi, 0x1f
xor eax, eax
mov al, byte [ebp - 0xef]
shl esi, 6
and eax, 0x3f
or esi, eax
jmp 0x78951f
test esi, 0x10
jne 0x78943f
xor edx, edx
and esi, 0xf
mov dl, byte [ebp - 0xef]
xor ecx, ecx
and edx, 0x3f
mov cl, byte [ebp - 0xee]
shl edx, 6
and ecx, 0x3f
shl esi, 0xc
or esi, edx
or esi, ecx
jmp 0x78951f
test esi, 8
jne 0x78947f
xor ecx, ecx
xor eax, eax
mov cl, byte [ebp - 0xef]
mov al, byte [ebp - 0xee]
and ecx, 0x3f
and esi, 7
shl ecx, 0xc
and eax, 0x3f
shl esi, 0x12
xor edx, edx
shl eax, 6
or esi, ecx
mov dl, byte [ebp - 0xed]
or esi, eax
and edx, 0x3f
or esi, edx
jmp 0x78951f
test esi, 4
jne 0x7894cc
xor ecx, ecx
and esi, 3
mov cl, byte [ebp - 0xef]
xor eax, eax
and ecx, 0x3f
mov al, byte [ebp - 0xee]
shl ecx, 0x12
xor edx, edx
shl esi, 0x18
mov dl, byte [ebp - 0xed]
and eax, 0x3f
or esi, ecx
shl eax, 0xc
and edx, 0x3f
shl edx, 6
xor ecx, ecx
or esi, eax
mov cl, byte [ebp - 0xec]
and ecx, 0x3f
or esi, edx
or esi, ecx
jmp 0x78951f
xor eax, eax
and esi, 1
mov al, byte [ebp - 0xef]
xor edx, edx
and eax, 0x3f
mov dl, byte [ebp - 0xee]
shl eax, 0x18
and edx, 0x3f
shl esi, 0x1e
xor ecx, ecx
or esi, eax
xor eax, eax
shl edx, 0x12
mov cl, byte [ebp - 0xed]
and ecx, 0x3f
mov al, byte [ebp - 0xec]
shl ecx, 0xc
or esi, edx
and eax, 0x3f
xor edx, edx
shl eax, 6
or esi, ecx
mov dl, byte [ebp - 0xeb]
or esi, eax
and edx, 0x3f
or esi, edx
mov ecx, esi
test ecx, ecx
jns 0x789528
add ecx, 0x7f
sar ecx, 7
xor eax, eax
mov al, byte [ecx + 0x885ee8]
shl eax, 7
mov edx, esi
and edx, 0x8000007f
jns 0x789545
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx ecx, word [eax*2 + 0x877be8]
xor eax, eax
mov al, byte [ecx*8 + 0x87656b]
mov esi, eax
test eax, eax
je 0x789583
mov byte [ebx], 0x10
inc ebx
mov byte [ebx], 9
inc ebx
mov edx, esi
mov byte [ebx], dl
inc ebx
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x78968f
or ecx, 0xffffffff
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x24], ecx
jmp 0x78968f
test byte [ebp - 0x48], 1
je 0x78958d
mov al, 0x1e
jmp 0x78958f
mov al, 0x1d
mov byte [ebx], al
inc ebx
xor esi, esi
lea eax, [ebp - 0xf0]
mov dword [ebp - 0x214], eax
cmp esi, dword [ebp - 0xe0]
jae 0x7895c2
mov edx, dword [ebp - 0x214]
mov cl, byte [edx]
mov byte [ebx], cl
inc ebx
inc esi
inc dword [ebp - 0x214]
cmp esi, dword [ebp - 0xe0]
jb 0x7895a8
xor ecx, ecx
mov cl, byte [ebp - 0xf0]
cmp ecx, 0xd
je 0x7895dc
xor eax, eax
mov al, byte [ebp - 0xf0]
cmp eax, 0xa
jne 0x7895e6
mov edx, dword [ebp + 0x30]
or dword [edx + 0x64], 0x800
cmp dword [ebp - 0x24], 0xfffffffe
jne 0x789654
mov dword [ebp - 0x38], 0xffffffff
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0xe0], 1
je 0x78960e
cmp dword [ebp - 0x3c], 0
jne 0x789649
xor edx, edx
mov dl, byte [ebp - 0xf0]
or edx, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], edx
xor ecx, ecx
mov cl, byte [ebp - 0xf0]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0xe0], 1
je 0x78968f
xor edx, edx
mov dl, byte [ebx - 1]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x68]
mov dword [ebp - 0x28], eax
jmp 0x78968f
or edx, 0xffffffff
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
jmp 0x78968f
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0xe0], 1
je 0x78967b
cmp dword [ebp - 0x3c], 0
jne 0x78968f
xor edx, edx
mov dl, byte [ebx - 1]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp + 0x30]
mov eax, dword [ecx + 0x68]
or eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], eax
inc dword [edi]
jmp 0x784ad7
mov edx, dword [ebp + 0x10]
mov eax, dword [edi]
mov dword [edx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret