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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x84
mov edi, edx
mov ebp, ecx
mov ecx, dword [esp + 0xb4]
cmp dword [esp + 0xac], 1
mov ebx, 0x681a8aae
jne 0x781de2
mov dword [esp + 0x34], edi
add ebx, 0x97e57562
mov al, bl
xor al, 0x7a
mov byte [esp + 0x67], al
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
test ecx, ecx
setne al
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov byte [esp + 0x68], dl
mov byte [esp + 0x57], dl
mov byte [esp + 0x5c], cl
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x58], edi
je 0x7828e2
jmp 0x7827a3
mov dword [esp + 0x40], ebp
add ebx, 0x97e57561
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
test ecx, ecx
setne al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
or cl, al
mov byte [esp + 0x4f], cl
je 0x781eb3
add bl, 0xf7
mov eax, 0xd
movzx edx, bl
cmp edx, 0x11
mov dword [esp + 0x60], ecx
mov dword [esp + 0x58], ecx
mov byte [esp + 0x57], cl
mov byte [esp + 0x67], cl
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x68], ecx
je 0x782267
mov esi, 0x10
cmp edx, 0x1b
mov dword [esp + 0x68], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov byte [esp + 0x57], al
mov byte [esp + 0x67], al
je 0x782082
mov ecx, 6
cmp edx, 0x35
mov dword [esp + 0x60], eax
mov dword [esp + 0x50], eax
mov byte [esp + 0x57], al
mov byte [esp + 0x67], al
mov dword [esp + 0x5c], esi
mov dword [esp + 0x68], esi
je 0x7824b3
mov eax, dword [esp + 0xb4]
mov dword [eax], 0
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
jmp 0x781ede
mov dword [esp + 0x5c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x58], edx
cmp ebx, 7
mov ecx, dword [esp + 0x68]
jne 0x781edc
mov eax, ebx
or eax, 2
xor ebx, 2
add ebx, eax
mov eax, ecx
jne 0x78247c
jmp 0x781ede
mov eax, ecx
mov ebp, 0x8067ea
mov ecx, dword [esp + 0xa0]
cmp ecx, 9
ja case.default.0x781f11
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], 0x124
mov byte [esp + 0x67], 0x4d
mov byte [esp + 0x57], 0x22
mov ebx, 0x10
mov eax, 0xc
xor edx, edx
jmp dword [ecx*4 + 0x7ec730]
mov dword [esp + 0x60], 0x211
mov ebp, 0x80690e
jmp case.0x781f11.1
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], 0x124
mov byte [esp + 0x67], 0x4d
mov byte [esp + 0x57], 0x22
cmp ecx, 0x66
jne case.0x781f11.5
mov dword [esp + 0x60], 0x29e
mov ebp, 0x80767e
jmp case.0x781f11.1
mov edx, 0x70000038
jmp case.0x781f11.0
mov dword [esp + 0x60], 0x117
mov ebp, 0x806e6c
jmp case.0x781f11.1
mov dword [esp + 0x60], 0x2fa
mov ebp, 0x806f83
jmp case.0x781f11.1
mov dword [esp + 0x60], 0x86
mov ebp, 0x806c2e
jmp case.0x781f11.1
mov bl, 0x56
inc ecx
dec eax
mov esi, 0x10f
mov ebp, 0x806b1f
mov edx, ecx
and edx, 1
xor edx, eax
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x781f90
jmp 0x7823c0
xor edx, edx
mov eax, dword [esp + 0x98]
test eax, eax
je 0x781fdf
xor eax, eax
test al, al
jne 0x781fdf
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x781ff0
mov eax, 3
sub eax, ecx
xor eax, ecx
mov edx, 0x700002d0
je 0x781ff0
mov dword [esp + 0x58], ebp
mov eax, dword [esp + 0x60]
mov dword [esp + 0x5c], eax
jmp case.0x781f11.0
mov al, 0x11
movzx eax, al
cmp eax, 0x63
jne 0x782034
mov esi, 0xe
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.0063c500
mov edx, 0x700002d1
test eax, eax
mov dword [esp + 0x58], ebp
mov eax, dword [esp + 0x60]
mov dword [esp + 0x5c], eax
jne case.0x781f11.0
jmp 0x7820fd
mov esi, 8
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.0063c500
test eax, eax
jne 0x782076
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov dword [esp + 0x58], ebp
mov eax, dword [esp + 0x60]
mov dword [esp + 0x5c], eax
jne 0x782117
jmp 0x782082
mov dword [esp + 0x58], ebp
mov eax, dword [esp + 0x60]
mov dword [esp + 0x5c], eax
cmp esi, 8
jne 0x7824cf
mov eax, 3
sub eax, esi
xor eax, esi
mov edx, 0x700002d1
je 0x7824cf
mov ebp, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x60], eax
mov al, byte [esp + 0x67]
movzx ecx, al
cmp ecx, 0x24
je 0x78223e
cmp ecx, 0x4d
je 0x782219
mov eax, 0x19
cmp ecx, 0x6c
jne 0x782286
cmp eax, 0xc
jne 0x7822b9
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x7822b9
mov dword [esp + 0x60], 0x14c
mov ebp, 0x806cb4
mov esi, 0x17
cmp esi, 0xe
jne case.0x781f11.1
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je case.0x781f11.1
lea eax, [esp + 0x7c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.0063c500
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
mov edx, 0x700002d2
cmp eax, ecx
jne case.0x781f11.0
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x14], edx
lea edx, [esp + 0x78]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0063c9d0
test eax, eax
setne cl
imul eax, eax
and eax, 3
cmp eax, 3
sete dl
xor eax, eax
or dl, cl
mov edx, 0x700002d3
cmove edx, eax
jne case.0x781f11.0
mov cl, byte [esp + 0x4f]
xor cl, 1
test cl, 1
je 0x782201
jmp case.0x781f11.0
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0xb4]
mov dword [edx], ecx
xor edx, edx
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x7821e0
jmp case.0x781f11.0
mov dword [esp + 0x68], edx
mov byte [esp + 0x67], 0x4d
mov bl, 0xf
mov eax, dword [esp + 0x80]
mov dword [esp + 0x50], eax
test eax, eax
mov al, 0xf
jne 0x78243f
jmp 0x78244d
mov dword [esp + 0x68], edx
mov eax, 1
mov byte [esp + 0x67], 0x6c
mov bl, 0xf
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x50], ecx
test ecx, ecx
je 0x782267
xor ecx, ecx
test cl, cl
je 0x78243f
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x7824cf
mov al, bl
jmp 0x78244d
mov dword [esp + 0x68], edx
mov byte [esp + 0x67], 0x24
mov eax, dword [esp + 0x80]
test eax, eax
je 0x7822e4
mov ebx, 0xc
mov dword [esp + 0x50], eax
imul eax, eax
and eax, 3
cmp eax, 3
mov al, 0xf
jne 0x78242d
jmp 0x78244d
mov dword [esp + 0x68], edx
mov byte [esp + 0x67], 0xf
mov eax, dword [esp + 0x80]
mov dword [esp + 0x50], eax
test eax, eax
je 0x7822ef
xor eax, eax
test al, al
mov bl, 0xf
mov al, 0xf
je 0x78243f
jmp 0x78244d
mov dword [esp + 0x50], eax
mov al, 0xf
jmp 0x78244d
mov al, 0xf
jmp 0x78244d
mov ah, 0xd
mov al, 0xb
mov esi, dword [esp + 0x7c]
test esi, esi
jne 0x782313
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x78247c
mov byte [esp + 0x48], ah
movzx eax, al
cmp eax, 0xb
je 0x7823cd
cmp eax, 0x61
jne 0x7823da
mov ebx, 0xc
mov dword [esp], esi
call fcn.0063bfd0
cmp ebx, 0xc
mov esi, dword [esp + 0x60]
je 0x78247c
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
je 0x78247c
mov eax, 9
mov bl, byte [esp + 0x57]
movzx ecx, bl
cmp ecx, 0x56
je 0x7823a6
xor ecx, ecx
jmp 0x782393
mov eax, 0x16
mov bl, 0x22
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add ecx, edx
mov esi, 0x10f
mov ebp, 0x806b1f
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x782370
xor ecx, ecx
cmp eax, 9
mov eax, 0xffffffff
je 0x781f9e
xor edx, edx
test dl, dl
jne 0x781f9e
mov dword [esp + 0x60], esi
mov byte [esp + 0x57], bl
jmp case.0x781f11.1
mov dword [esp], esi
call fcn.0063bfd0
jmp 0x78247c
mov dword [esp + 0x34], edi
xor edi, edi
jmp 0x78240f
mov ebx, 8
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
add edi, eax
mov dword [esp], esi
call fcn.0063bfd0
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp edi, eax
jb 0x7823f0
mov edi, dword [esp + 0x34]
mov al, byte [esp + 0x48]
cmp ebx, 8
je 0x78247c
imul ebx, ebx
and ebx, 3
cmp ebx, 3
mov bl, al
je 0x78247c
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.0063bfd0
mov al, bl
movzx eax, al
cmp eax, 0xd
je 0x7822f6
cmp eax, 0xf
jne 0x782482
mov esi, dword [esp + 0x7c]
test esi, esi
je 0x78247c
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 3
je 0x78247c
mov ah, 0x6f
mov al, 0xb
jmp 0x782313
mov eax, dword [esp + 0x68]
jmp 0x7824e5
mov ecx, 0xb
mov ah, 0xf
mov al, 0xb
mov esi, dword [esp + 0x7c]
test esi, esi
jne 0x7824af
mov ebx, 7
mov edx, esi
imul edx, edx
and edx, 3
cmp edx, 2
mov edx, dword [esp + 0x58]
jb 0x781ebb
jmp 0x7824b3
mov edx, dword [esp + 0x58]
mov dword [esp + 0x58], edx
cmp ecx, 6
jne 0x782313
mov edx, 3
sub edx, ecx
xor edx, ecx
je 0x782313
mov eax, dword [esp + 0xb4]
mov dword [eax], 0
mov eax, dword [esp + 0x68]
jmp 0x781ede
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, 0x13
mov byte [esp + 0x67], 0x6c
mov ebx, edx
imul ebx, ebx
and ebx, 3
cmp ebx, 2
adc edx, 0
mov dword [ebp], 0
mov ebx, 3
sub ebx, edx
xor ebx, edx
setne bl
movzx ebx, bl
cmp edx, ebx
jb 0x7824f0
jmp 0x782754
mov byte [esp + 0x67], 0x5b
mov eax, dword [esp + 0xb4]
mov dword [eax], 0
mov eax, 0xb
xor edx, edx
mov esi, 0x124
mov edi, 0x8067ea
mov ecx, dword [esp + 0xa0]
cmp ecx, 9
ja case.default.0x78258b
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0x124
mov byte [esp + 0x4f], 0xe
mov byte [esp + 0x60], 0x3a
mov byte [esp + 0x57], 4
mov esi, ecx
mov edx, 0xf
mov ebx, 0x1a
mov ecx, 2
mov ebp, 0x13
jmp dword [esi*4 + 0x7ec758]
mov cl, 0x11
mov eax, 0x18
movzx ecx, cl
mov edi, 0x8067ea
cmp ecx, 0x11
jne 0x7826ab
mov dword [esp + 0x58], 0x124
jmp 0x782ca5
mov byte [esp + 0x4f], 0xe
mov byte [esp + 0x60], 0x3a
cmp ecx, 0x66
jne 0x78267f
mov ebx, 0x8067ea
mov ebp, dword [esp + 0xb4]
jmp 0x7825f0
mov ecx, 7
inc edx
mov esi, 0x29e
mov ebx, 0x80767e
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 2
mov edi, edx
sbb edx, edx
and edx, 1
xor eax, eax
cmp edi, edx
mov edx, edi
jb 0x7825e0
mov dword [esp + 0x58], esi
mov edi, ebx
mov dl, 4
jmp 0x78280b
mov dword [esp + 0x58], 0x2fa
mov edi, 0x806f83
mov ecx, 6
jmp 0x782934
mov al, 0x56
mov ebp, 0x10
movzx eax, al
cmp eax, 0x56
jne case.0x78258b.7
mov eax, 4
mov dword [esp + 0x5c], 0
mov edx, 0x14c
mov edi, 0x806cb4
mov ecx, dword [esp + 0x50]
jmp 0x782c2d
cmp ebp, 0x10
je 0x782699
imul ebp, ebp
and ebp, 3
cmp ebp, 3
je 0x782699
mov dword [esp + 0x58], 0x86
mov edi, 0x806c2e
jmp case.0x78258b.1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0x124
mov byte [esp + 0x57], 4
jmp case.0x78258b.5
mov dword [esp + 0x58], 0x14c
mov edi, 0x806cb4
jmp case.0x78258b.1
mov dword [esp + 0x58], 0x124
mov eax, 0x13
xor edx, edx
jmp 0x782f66
mov ch, 4
mov edx, eax
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add eax, edx
mov edx, 0x117
mov edi, 0x806e6c
test eax, eax
je 0x7826c0
test cl, cl
je 0x7826c0
mov dword [esp + 0x58], edx
mov byte [esp + 0x57], ch
jmp case.0x78258b.1
mov eax, 0x11
mov dword [esp + 0x5c], 0x700002d0
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x782f04
mov ecx, 3
sub ecx, edx
xor ecx, edx
jne 0x782f8d
jmp 0x782f04
mov ebx, 0x17
mov byte [esp + 0x2f], 0x17
lea eax, [esp + 0x74]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x40]
mov dword [esp], ebp
call fcn.0063c500
test eax, eax
jne 0x78278d
mov ecx, 9
mov eax, 0x700002d1
cmp ecx, 9
jne 0x782539
mov ebx, 0xe
movzx edx, byte [esp + 0x2f]
cmp edx, 0x17
je case.0x78258b.3
mov ecx, 8
cmp edx, 0x1d
jne 0x7829a3
mov ebx, dword [esp + 0x50]
mov esi, eax
mov dl, byte [esp + 0x60]
jmp 0x782faa
mov dword [esp + 0x30], edi
mov al, byte [esp + 0x2e]
mov dl, 0x17
mov ah, byte [esp + 0x60]
mov esi, dword [esp + 0x50]
mov dh, byte [esp + 0x4f]
mov byte [esp + 0x4f], dh
mov dword [esp + 0x50], esi
mov byte [esp + 0x60], ah
mov byte [esp + 0x2f], dl
mov byte [esp + 0x2e], al
mov dword [esp + 0x40], ebp
cmp ebx, 0x10
mov edi, dword [esp + 0x30]
jne 0x78282e
mov eax, ebx
or eax, 2
xor ebx, 2
add ebx, eax
je 0x78283b
mov ecx, 0xd
movzx edx, byte [esp + 0x67]
cmp edx, 0x5b
je case.0x78258b.6
mov eax, 0x13
cmp edx, 0x6a
je 0x782aec
cmp edx, 0x6c
jne 0x782910
mov eax, 0x700002d1
mov ecx, 5
mov ebp, dword [esp + 0xb4]
mov dl, byte [esp + 0x57]
mov byte [esp + 0x57], dl
xor edx, edx
cmp ecx, 5
je 0x78250f
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne case.0x78258b.1
jmp 0x78250f
mov dword [esp + 0x5c], 0x700002d1
jmp 0x782f8d
mov dword [esp + 0x5c], 0x700002d1
jmp 0x782f8d
cmp ecx, 2
je 0x782857
xor eax, eax
test al, al
je 0x782527
mov dword [esp + 0x58], 0x10f
mov edi, 0x806b1f
jmp case.0x78258b.1
cmp ebx, 0xe
jne 0x78291c
imul ebx, ebx
and ebx, 3
cmp ebx, 2
jae 0x78291c
mov byte [esp + 0x2f], 0x1d
lea eax, [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.0063c500
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x7829ef
mov dword [esp + 0x30], edi
mov ebx, 0x14
mov byte [esp + 0x5c], 0x5f
mov ebp, dword [esp + 0x40]
mov al, byte [esp + 0x2e]
mov dl, 0x1d
mov ah, byte [esp + 0x60]
mov esi, dword [esp + 0x50]
mov dh, byte [esp + 0x4f]
mov byte [esp + 0x4f], dh
mov dword [esp + 0x50], esi
mov byte [esp + 0x60], ah
mov byte [esp + 0x2f], dl
mov byte [esp + 0x2e], al
mov dword [esp + 0x40], ebp
cmp ebx, 0x10
mov edi, dword [esp + 0x30]
mov bl, byte [esp + 0x5c]
je 0x782539
jmp 0x782a35
mov ebx, dword [esp + 0xb4]
jmp 0x782c6c
mov ecx, 9
mov eax, 0xd
movzx edx, byte [esp + 0x57]
cmp edx, 0x12
jne 0x782e3a
cmp ecx, 6
je case.0x78258b.1
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je case.0x78258b.1
xor ecx, ecx
mov bl, byte [esp + 0x57]
mov esi, dword [esp + 0x58]
jmp 0x782982
mov eax, 0xb
mov bl, 0x12
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov esi, 0x117
mov edi, 0x806e6c
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, 1
cmp ecx, edx
jb 0x782960
mov dword [esp + 0x58], esi
mov byte [esp + 0x57], bl
jmp 0x782d11
mov byte [esp + 0x2f], 0x4d
mov bl, 0x5f
lea eax, [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.0063c500
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x5c], 0x700002d2
cmp eax, ecx
jne 0x782f8d
jmp 0x782a35
mov dword [esp + 0x5c], 0x700002d2
jmp 0x782f8d
mov byte [esp + 0x60], dl
mov byte [esp + 0x2f], 0x17
lea eax, [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.0063c500
test eax, eax
jne 0x782c1a
mov dword [esp + 0x50], ebx
mov bl, 0x5f
mov eax, 0xc
movzx ecx, bl
cmp ecx, 0x13
je 0x782aec
cmp ecx, 0x4e
jne 0x782b79
mov ebx, 9
mov byte [esp + 0x68], 0x2b
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x14], edx
lea edx, [esp + 0x6c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0063c9d0
test eax, eax
setne cl
mov edx, eax
and edx, 1
inc edx
xor edx, eax
sete dl
mov ch, byte [esp + 0x2e]
movzx eax, ch
mov ebp, eax
not ebp
and ebp, 1
add ebp, eax
setne al
xor ebp, ebp
or dl, cl
mov edx, 0x700002d3
cmove edx, ebp
mov dword [esp + 0x5c], edx
jne 0x782e7e
xor al, ch
je 0x782c52
jmp 0x782e7e
mov ecx, dword [esp + 0xb4]
cmp eax, 0xc
jne 0x782c0a
mov ebx, 0xe
mov byte [esp + 0x68], 0x2b
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x14], edx
lea edx, [esp + 0x6c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0063c9d0
test eax, eax
mov edx, 0x700002d3
cmove edx, eax
jne 0x782f47
mov ebp, 0x20
mov al, byte [esp + 0x2e]
xor al, 1
je 0x782e50
jmp 0x782f47
mov byte [esp + 0x68], 0x2b
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x14], edx
lea edx, [esp + 0x6c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0063c9d0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx edx, cl
mov bl, byte [esp + 0x2e]
movzx ecx, bl
or ecx, 2
add ecx, ecx
setne cl
xor esi, esi
cmp eax, edx
mov eax, 0x700002d3
cmove eax, esi
mov dword [esp + 0x5c], eax
jne 0x782f8d
xor cl, bl
je 0x782c52
jmp 0x782f8d
mov byte [esp + 0x67], 0x6a
mov dword [ecx], 0
jmp 0x782539
mov eax, 0xa
mov dword [esp + 0x5c], 0x700002d2
mov ecx, ebx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x58], edx
mov dword [esp + 0x50], ecx
cmp eax, 4
je case.0x78258b.1
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x782f8d
jmp case.0x78258b.1
mov ecx, 7
movzx eax, byte [esp + 0x68]
cmp eax, 0x2b
mov ebx, dword [esp + 0xb4]
jne 0x782d2e
xor edx, edx
cmp ecx, 7
je 0x782c91
jmp 0x782cfe
mov eax, 0xe
mov byte [esp + 0x68], 0x2b
inc edx
mov ecx, dword [esp + 0x6c]
mov dword [ebx], ecx
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp edx, ecx
jb 0x782c80
cmp eax, 0xe
je 0x782d77
xor eax, eax
test al, al
jne 0x782d84
mov dword [esp + 0x5c], 0
mov ecx, 0xe
mov dword [esp + 0x58], 0x211
mov edi, 0x80690e
jmp 0x782dba
mov eax, 0x1b
mov byte [esp + 0x67], 0x37
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc edx, 0
mov dword [ebx], 0
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
setne cl
movzx ecx, cl
cmp edx, ecx
jb 0x782ce0
cmp eax, 0xb
jne 0x782539
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne case.0x78258b.1
jmp 0x782539
xor eax, eax
jmp 0x782d55
mov byte [esp + 0x68], 0x36
add ecx, eax
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [esp + 0x6c]
mov dword [ebx], ecx
mov ecx, eax
not ecx
and ecx, 1
mov edx, eax
add edx, ecx
setne dl
movzx edx, dl
cmp eax, edx
jb 0x782d40
mov dword [esp + 0x5c], 0
jmp 0x782f8d
mov dword [esp + 0x5c], 0
jmp 0x782f8d
mov dword [esp + 0x5c], 0
jmp 0x782f8d
mov eax, 0xd
mov byte [esp + 0x60], 0x3a
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x782dd2
mov ecx, 0x14
xor edx, edx
test dl, dl
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x50], edx
jne case.0x78258b.5
cmp ecx, 0xe
je case.0x78258b.1
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
jne 0x782e0d
jmp case.0x78258b.1
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x50], ecx
cmp eax, 0xb
jne 0x782e19
movzx eax, byte [esp + 0x4f]
cmp eax, 0xe
jne 0x782dfb
mov dword [esp + 0x5c], 0x70000038
mov byte [esp + 0x4f], 0x6c
jmp 0x782f8d
mov dword [esp + 0x5c], 0x70000038
mov byte [esp + 0x4f], 0xe
jmp 0x782f8d
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0063bfd0
mov ebx, 0x14
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x782e7a
mov eax, 8
mov dword [esp + 0x3c], ecx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x782e7e
cmp eax, 8
jne 0x782e69
mov ebp, 0x10
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.0063bfd0
cmp ebp, 0x10
jne 0x782c52
imul ebp, ebp
and ebp, 3
cmp ebp, 2
jb 0x782e94
jmp 0x782c52
xor eax, eax
mov cl, 1
mov ch, byte [esp + 0x57]
mov edx, dword [esp + 0x58]
jmp 0x7826de
mov dword [esp + 0x3c], ecx
cmp ebx, 9
jne 0x782e94
mov eax, ebx
and eax, 1
xor eax, ebx
not eax
test eax, eax
jne 0x782f8d
mov eax, dword [esp + 0x50]
jmp 0x7824e5
mov dword [esp + 0x58], 0x211
mov edi, 0x80690e
mov edx, 0xd
mov eax, dword [esp + 0x98]
test eax, eax
je 0x782eeb
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x58]
mov dword [esp + 0x44], eax
mov dword [esp + 0x5c], 0
cmp edx, 0xd
jne 0x782f8d
mov eax, edx
not eax
and eax, 1
add eax, edx
jne 0x7826f3
jmp 0x782f8d
mov eax, 0xe
mov dword [esp + 0x5c], 0
mov dword [esp + 0x48], edi
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x44], ecx
cmp eax, 0xe
je 0x782f8d
xor eax, eax
test al, al
je 0x782720
jmp 0x782f8d
mov eax, 0xa
mov byte [esp + 0x60], 0x59
mov edx, dword [esp + 0x74]
test edx, edx
jne 0x782f5c
mov ebx, 0x16
mov ecx, edx
and ecx, 1
xor ecx, edx
mov dword [esp + 0x38], edx
not ecx
test ecx, ecx
mov edx, esi
mov dword [esp + 0x50], esi
je 0x782f66
cmp ebx, 0xe
je 0x782f89
mov dword [esp + 0x5c], edx
xor eax, eax
test al, al
je 0x782e19
jmp 0x782f8d
mov dword [esp + 0x38], edx
mov edx, esi
mov dword [esp + 0x50], esi
cmp eax, 0xa
jne 0x782e9d
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x782e9d
mov dword [esp + 0x5c], edx
jmp 0x782e0d
mov dword [esp + 0x5c], edx
mov ecx, 5
mov dl, byte [esp + 0x60]
movzx eax, dl
cmp eax, 0x59
je 0x782d91
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x5c]
cmp ecx, 5
jne 0x7829fc
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
jne 0x782f19
jmp 0x7829fc