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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x1408
call fcn.007ce210
mov eax, dword [ebp + 8]
mov dword [esp + 0x1060], 0
mov dword [esp + 0x105c], 0
mov dword [esp + 0x1058], 0
mov dword [esp + 0x1054], 0
cmp dword [eax + 8], 0
mov ecx, 0x6f
je 0x7594a8
mov eax, 0x6f
add al, 0x97
mov dword [esp + 0x2c], eax
mov ah, al
xor ah, 4
mov byte [esp + 0x22], ah
mov al, ah
add al, 0x36
mov byte [esp + 0x24], al
mov dl, ah
add dl, 0x13
mov byte [esp + 0x21], dl
mov cl, dl
xor cl, al
add cl, 0xea
mov byte [esp + 0x23], cl
mov al, cl
xor al, dl
xor al, 0x1e
mov byte [esp + 0x44], al
movzx ebx, dl
movzx edi, ah
mov esi, 0xffffffff
mov dword [esp + 0x34], 0xffffffff
mov ecx, 0
nop word cs:[eax + eax]
mov dword [esp + 0x4c], ecx
and edi, 0xffffff84
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
lea ecx, [ecx + ecx*2]
mov edx, dword [eax + ecx*8]
cmp edx, 0x33
jg 0x758bf0
cmp edx, 8
je 0x758c20
cmp edx, 0x10
jne 0x758cd0
lea eax, [eax + ecx*8]
lea ecx, [esp + 0x1058]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00789bd0
mov dword [esp + 0x1060], eax
xor edx, edx
test eax, eax
jne 0x7594c5
mov ebx, edi
add ebx, 0xee
jmp 0x7593d4
cmp edx, 0x34
je 0x758c70
cmp edx, 0x35
jne 0x758cd0
mov ebx, edi
xor ebx, 0xf6
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x34], ecx
jmp 0x758cd6
and ebx, 0xffffff93
mov edx, dword [eax + ecx*8 + 0x10]
mov eax, dword [eax + ecx*8 + 0x14]
lea ecx, [esp + 0x1054]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00627a50
mov dword [esp + 0x1060], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x7593d4
jmp 0x759512
mov dword [esp + 0x3c], esi
mov ebx, edi
add ebx, 0x97
movzx edx, byte [esp + 0x44]
cmp edx, 0x1c
jne 0x758cea
xor ebx, 0x8a
add bl, 0xe8
mov edx, dword [eax + ecx*8 + 0x10]
mov eax, dword [eax + ecx*8 + 0x14]
mov dword [esp + 0x1064], 0
lea ecx, [esp + 0x1064]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.006267d0
mov esi, eax
test esi, esi
jne 0x758d5c
mov al, bl
movzx ebx, al
jmp 0x758d3a
mov ecx, dword [esp + 0x4c]
mov ebx, edi
and ebx, 0xffffff09
add ebx, 0x35
cmp edx, 0x16
cmove esi, ecx
jmp 0x7593d8
mov dl, bl
add dl, 0x85
mov byte [esp + 0x44], dl
mov edx, dword [eax + ecx*8 + 0x10]
mov eax, dword [eax + ecx*8 + 0x14]
mov dword [esp + 0x1064], 0
lea ecx, [esp + 0x1064]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.006267d0
mov esi, eax
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp esi, eax
jne 0x759324
mov al, byte [esp + 0x44]
mov byte [esp + 0x44], al
and ebx, 0xffffff6d
add ebx, 0x65
mov eax, dword [esp + 0x1064]
xor edx, edx
cmp dword [eax], 0
jne 0x758d67
xor esi, esi
jmp 0x759332
mov byte [esp + 0x44], bl
xor edx, edx
jmp 0x759326
add ebx, 0x66
movzx eax, byte [esp + 0x23]
cmp eax, 7
je 0x758db7
cmp eax, 0xe
je 0x758dbe
cmp eax, 0x17
jne 0x758df7
mov al, bl
add al, 0x37
mov byte [esp + 0x23], al
mov dword [esp + 4], 8
mov dword [esp], 1
call fcn.00493840
xor edx, edx
test eax, eax
mov esi, 0x70000003
je 0x759326
xor ecx, ecx
test cl, cl
jne 0x759326
mov edx, eax
jmp 0x758e2f
mov bh, bl
add bh, 0x3c
jmp 0x758dfc
mov al, bl
xor al, 0xc7
mov byte [esp + 0x23], al
mov dword [esp + 4], 8
mov dword [esp], 1
call fcn.00493840
mov edx, eax
test edx, edx
jne 0x758e2f
mov eax, edx
and eax, 1
xor eax, edx
not eax
test eax, eax
mov al, byte [esp + 0x21]
jne 0x75931f
jmp 0x758e33
mov bh, bl
add bh, 0x3e
mov byte [esp + 0x23], bh
mov dword [esp + 4], 8
mov dword [esp], 1
call fcn.00493840
mov edx, eax
movzx ebx, bh
test edx, edx
jne 0x758e2f
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
jne 0x75931f
mov al, byte [esp + 0x21]
mov dword [esp + 0x28], edx
and ebx, 0xffffff21
or ebx, 0x84
movzx eax, al
cmp eax, 0x15
je 0x758e7b
cmp eax, 0x21
je 0x758ead
cmp eax, 0x3a
jne 0x758ee0
add ebx, 2
mov al, bl
add al, 0x9b
mov byte [esp + 0x21], al
mov eax, dword [esp + 0x1064]
xor esi, esi
cmp dword [eax], 0
jne 0x758f29
jmp 0x759326
mov cl, bl
add cl, 0xed
mov eax, dword [esp + 0x1064]
mov eax, dword [eax]
movzx edi, cl
test eax, eax
jne 0x758f23
mov byte [esp + 0x21], cl
mov ecx, 3
sub ecx, eax
xor esi, esi
xor ecx, eax
mov ebx, edi
jne 0x759326
jmp 0x758f29
xor ebx, 0x8f
mov al, bl
add al, 0x2f
mov byte [esp + 0x21], al
mov eax, dword [esp + 0x1064]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
xor esi, esi
cmp eax, ecx
jne 0x758f29
jmp 0x759326
mov edi, edx
add ebx, 0xffffff7d
mov dl, bl
add dl, 0x14
mov eax, dword [esp + 0x1064]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
xor esi, esi
cmp eax, ecx
jne 0x758f18
mov byte [esp + 0x21], dl
mov edx, edi
jmp 0x759326
movzx ebx, dl
mov byte [esp + 0x21], dl
mov edx, edi
jmp 0x758f29
mov byte [esp + 0x21], cl
mov ebx, edi
and ebx, 0xffffff00
or ebx, 0x8b
mov edi, ebx
xor ecx, ecx
jmp 0x758f50
mov byte [esp + 0x24], cl
jmp 0x7592db
mov dword [esp + 0x40], ecx
mov eax, dword [edx]
mov ecx, dword [edx + 4]
shl eax, 6
add eax, 0x40
mov dword [esp + 4], eax
mov dword [esp], ecx
mov esi, edx
call fcn.00492a60
mov edx, esi
mov dword [edx + 4], eax
test eax, eax
je 0x759317
and edi, 0xffffff6b
add edi, 0xa1
mov dword [esp + 0x48], edi
mov ebx, dword [edx]
mov ecx, dword [esp + 0x1064]
mov ecx, dword [ecx + 4]
mov esi, ebx
imul esi, esi
and esi, 3
cmp esi, 2
mov esi, ebx
adc esi, 0
mov dword [edx], esi
mov edi, dword [esp + 0x40]
shl edi, 6
movsd xmm0, qword [ecx + edi]
shl ebx, 6
movsd qword [eax + ebx], xmm0
movsd xmm0, qword [ecx + edi + 8]
movsd qword [eax + ebx + 8], xmm0
movsd xmm0, qword [ecx + edi + 0x10]
movsd qword [eax + ebx + 0x10], xmm0
movsd xmm0, qword [ecx + edi + 0x18]
movsd qword [eax + ebx + 0x18], xmm0
mov dword [esp + 0x38], eax
mov eax, dword [ecx + edi + 0x24]
test eax, eax
jne 0x758ffb
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x759091
add dword [esp + 0x48], 0xffffff87
mov eax, dword [ecx + edi + 0x20]
mov esi, ecx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x759020
mov ecx, esi
jmp 0x759091
lea ecx, [esi + edi + 0x20]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x38]
mov dword [esi + ebx + 0x20], eax
mov eax, dword [ecx]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00493840
mov dword [esi + ebx + 0x24], eax
test eax, eax
jne 0x759069
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x759313
mov edx, esi
mov esi, dword [esp + 0x30]
lea ecx, [esi + edi + 0x24]
lea edx, [edx + ebx + 0x20]
mov ecx, dword [ecx]
mov edx, dword [edx]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.007ce510
mov ecx, esi
mov edx, dword [esp + 0x28]
and dword [esp + 0x48], 0xffffff60
mov eax, dword [ecx + edi + 0x28]
test eax, eax
je 0x759114
imul eax, eax
and eax, 3
cmp eax, 3
je 0x759110
mov esi, ecx
mov dword [esp + 4], 0x10
mov dword [esp], 1
call fcn.00493840
mov ecx, dword [esp + 0x38]
mov dword [ecx + ebx + 0x28], eax
test eax, eax
je 0x759313
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov edx, dword [esp + 0x28]
je 0x759317
lea ecx, [esi + edi + 0x28]
add dword [esp + 0x48], 0x82
mov ecx, dword [ecx]
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, esi
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
jmp 0x759114
mov edx, dword [esp + 0x28]
mov dword [esp + 0x30], ecx
mov eax, dword [ecx + edi + 0x2c]
mov esi, dword [esp + 0x38]
mov dword [esi + ebx + 0x2c], eax
mov eax, dword [ecx + edi + 0x38]
test eax, eax
jne 0x75913b
mov ecx, 3
sub ecx, eax
xor ecx, eax
jne 0x7592db
mov eax, dword [esp + 0x48]
and eax, 0xffffff7d
add eax, 0xfffffffa
add eax, 8
mov dword [esp + 0x48], eax
xor eax, 0xe0
movzx ecx, byte [esp + 0x24]
cmp ecx, 0xb
je 0x759196
cmp ecx, 0x38
je 0x7591b4
cmp ecx, 0x3a
jne 0x7591e5
mov dl, al
add dl, 0x49
mov esi, dword [esp + 0x30]
mov eax, dword [esi + edi + 0x34]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x759228
mov byte [esp + 0x24], dl
jmp 0x7592d7
mov cl, al
add cl, 0x78
mov esi, dword [esp + 0x30]
mov eax, dword [esi + edi + 0x34]
test eax, eax
jne 0x75923b
mov byte [esp + 0x24], cl
jmp 0x7592db
mov eax, dword [esp + 0x48]
add al, 0x16
mov byte [esp + 0x24], al
mov esi, dword [esp + 0x30]
mov eax, dword [esi + edi + 0x34]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x7592db
lea ecx, [esi + edi + 0x34]
jmp 0x75924c
mov eax, dword [esp + 0x48]
mov cl, al
xor cl, 0x34
mov eax, dword [esp + 0x30]
mov eax, dword [eax + edi + 0x34]
test eax, eax
je 0x758f3b
mov byte [esp + 0x24], cl
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x7592db
mov ecx, dword [esp + 0x30]
lea edx, [ecx + edi + 0x34]
movzx ecx, byte [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, edx
jmp 0x759250
lea esi, [esi + edi + 0x34]
movzx ecx, dl
mov dword [esp + 0x48], ecx
mov ecx, esi
mov byte [esp + 0x24], dl
jmp 0x75924c
mov dl, cl
mov byte [esp + 0x24], dl
lea ecx, [esi + edi + 0x34]
movzx edx, dl
mov dword [esp + 0x48], edx
mov esi, dword [esp + 0x38]
mov dword [esi + ebx + 0x34], eax
mov eax, dword [ecx]
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.00493840
mov dword [esi + ebx + 0x38], eax
test eax, eax
je 0x759313
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x759313
mov ecx, dword [esp + 0x30]
lea ecx, [ecx + edi + 0x38]
mov edi, dword [esp + 0x48]
and edi, 0xffffffc2
lea edx, [esi + ebx + 0x34]
xor edi, 0xc2
mov ebx, edi
movzx esi, byte [esp + 0x22]
cmp esi, 2
je 0x7592b2
cmp esi, 0x2d
jne 0x7592b7
xor bl, 0x8e
jmp 0x7592ba
xor bl, 0xed
jmp 0x7592ba
add bl, 0x42
mov ecx, dword [ecx]
mov edx, dword [edx]
shl edx, 2
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.007ce510
mov al, bl
mov byte [esp + 0x22], al
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
add ecx, eax
mov eax, dword [esp + 0x1064]
xor esi, esi
cmp ecx, dword [eax]
jae 0x759326
mov edi, 0x1f
mov eax, ecx
not eax
and eax, 1
add eax, ecx
jne 0x758f50
jmp 0x759326
mov edx, dword [esp + 0x28]
mov dword [esp], edx
call fcn.006275f0
mov esi, 0x70000003
xor edx, edx
mov ebx, 0x23
mov eax, dword [esp + 0x1064]
and ebx, 0xffffffb6
add ebx, 0xb7
test eax, eax
je 0x759374
xor ecx, ecx
test cl, cl
jne 0x759374
mov edi, edx
add ebx, 0xffffff5a
mov ecx, dword [esp + 0x2c]
movzx ecx, cl
cmp ecx, 0x50
jne 0x75935e
add bl, 0x1d
jmp 0x759361
add bl, 0xd3
mov dword [esp], eax
call fcn.006268f0
mov al, bl
mov dword [esp + 0x2c], eax
movzx ebx, bl
mov edx, edi
mov dword [esp + 0x1060], esi
mov eax, esi
and eax, 1
inc eax
xor eax, esi
sete al
movzx eax, al
cmp esi, eax
jne 0x75952a
mov dword [esp + 4], edx
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov esi, edx
call fcn.00786870
mov dword [esp + 0x1060], eax
mov dword [esp], esi
call fcn.006275f0
cmp dword [esp + 0x1060], 0
mov esi, dword [esp + 0x3c]
mov edx, 0
jne 0x7594c5
and ebx, 0xffffff20
or ebx, 0xdc
mov ecx, dword [esp + 0x4c]
and ebx, 0xffffff00
or ebx, 0x79
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
adc ecx, 0
mov eax, dword [ebp + 8]
cmp ecx, dword [eax + 8]
mov edi, ebx
jb 0x758b90
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov edi, ebx
je 0x758b90
mov edi, dword [esp + 0x34]
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx ecx, al
mov edx, esi
imul edx, edx
and edx, 3
xor eax, eax
cmp edx, 2
sbb eax, 0
add ecx, edi
mov edi, dword [ebp + 8]
mov ecx, 0x6f
je 0x7594a8
cmp esi, eax
je 0x7594a8
add ebx, 0xffffffa9
mov al, bl
mov edx, dword [esp + 0x1054]
test edx, edx
je 0x759633
mov cl, al
add cl, 0xf8
add ebx, 0xac
movzx ecx, cl
cmp ecx, 0x1a
je 0x75952e
cmp ecx, 0x68
je 0x759559
cmp ecx, 0x7b
jne 0x759584
mov cl, bl
add cl, 0xad
xor cl, 0x5e
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x75959d
imul edx, edx
and edx, 3
cmp edx, 2
jb 0x759633
jmp 0x75959d
movzx eax, cl
cmp eax, 0x11
je 0x7594b8
cmp eax, 0x6f
je 0x7594b8
cmp eax, 0x73
mov dword [esp + 0x1060], 0x7000002f
xor edx, edx
mov eax, dword [esp + 0x1054]
test eax, eax
je 0x7594fb
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x7594fb
mov esi, edx
mov cl, 0x31
movzx ecx, cl
cmp ecx, 0x21
je 0x7594f1
cmp ecx, 0x3c
je 0x7594f1
cmp ecx, 0x55
mov dword [esp], eax
call fcn.00627ad0
mov edx, esi
mov dword [esp], edx
call fcn.004936c0
mov eax, dword [esp + 0x1060]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor bl, 1
movzx eax, bl
cmp eax, 0x10
mov dword [esp + 0x1060], 0x700002bb
xor edx, edx
jmp 0x7594c5
xor edx, edx
jmp 0x7594c5
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x759633
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x759633
mov al, bl
add al, 0x55
movzx ecx, al
sub ecx, ebx
add cl, 0xd0
movzx ebx, cl
jmp 0x75959d
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x759633
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x759633
mov al, bl
add al, 0x4c
movzx ecx, al
sub ecx, ebx
xor cl, 0x69
movzx ebx, cl
jmp 0x75959d
cmp dword [edx + 0x10], 0
je 0x759633
mov al, bl
xor al, 0xa6
movzx ecx, al
sub ecx, ebx
xor cl, 0xbf
movzx ebx, cl
and ebx, 0xffffff14
xor ebx, 0xc4
movzx eax, cl
cmp eax, 0x25
je 0x759724
cmp eax, 0x38
je 0x759787
cmp eax, 0x5b
jne 0x7597e3
mov al, bl
add al, 0x78
movzx eax, al
xor eax, ebx
xor al, 0x96
mov dword [esp + 0x4c], eax
mov bl, al
add bl, 0xf0
mov dword [esp + 0x1050], 0
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
mov edx, edi
mov edi, dword [eax + ecx*8 + 0x10]
lea eax, [edx + 4]
mov dword [esp + 0x38], eax
mov dword [esp], edi
mov dword [esp + 4], 1
call fcn.00493840
test eax, eax
jne 0x759e89
mov ecx, eax
mov dword [esp + 0x30], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov eax, dword [esp + 0x4c]
jb 0x75a11f
jmp 0x759e91
add al, 0x3f
mov ebx, 0x11
movzx eax, al
cmp eax, 0x55
je 0x759693
cmp eax, 0x61
jne 0x7596e6
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
mov edi, dword [eax + ecx*8 + 0x10]
mov dword [esp], edi
mov dword [esp + 4], 1
call fcn.00493840
test eax, eax
mov edx, eax
mov ecx, 0x11
je 0x75a12a
xor eax, eax
test al, al
jne 0x75a12a
add ecx, 0xd1
mov eax, dword [ebp + 8]
lea ebx, [eax + 4]
jmp 0x75984f
xor bl, 0x44
lea eax, [edi + 4]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
mov edi, dword [eax + ecx*8 + 0x10]
mov dword [esp], edi
mov dword [esp + 4], 1
call fcn.00493840
mov ecx, ebx
movzx ecx, cl
test eax, eax
jne 0x759849
mov edx, ecx
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov ecx, edx
mov edx, eax
mov ebx, dword [esp + 0x38]
jne 0x75a12a
jmp 0x75984f
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
mov edi, dword [eax + ecx*8 + 0x10]
mov dword [esp], edi
mov dword [esp + 4], 1
call fcn.00493840
test eax, eax
mov edx, eax
mov ecx, 0x11
je 0x75a12a
add cl, 0x32
mov eax, dword [ebp + 8]
lea ebx, [eax + 4]
movzx ecx, cl
jmp 0x75984f
mov al, bl
add al, 0xae
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1050], 0
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
mov edx, edi
mov edi, dword [eax + ecx*8 + 0x10]
lea eax, [edx + 4]
mov dword [esp + 0x38], eax
mov dword [esp], edi
mov dword [esp + 4], 1
call fcn.00493840
test eax, eax
jne 0x759e7d
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x759e7d
add bl, 0x65
mov eax, dword [esp + 0x4c]
xor al, bl
xor al, 0x15
mov bl, al
jmp 0x75a11f
mov dword [esp + 0x1050], 0
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
mov edi, dword [eax + ecx*8 + 0x10]
mov dword [esp], edi
mov dword [esp + 4], 1
call fcn.00493840
test eax, eax
je 0x75a10d
mov ecx, eax
mov dword [esp + 0x30], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x75a111
add bl, 0xae
mov eax, dword [ebp + 8]
lea eax, [eax + 4]
mov dword [esp + 0x38], eax
mov al, bl
mov bl, 0x5e
jmp 0x759e91
mov al, bl
add al, 0x9e
mov byte [esp + 0x4c], al
mov dword [esp + 0x1050], 0
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
mov edi, dword [eax + ecx*8 + 0x10]
mov dword [esp], edi
mov dword [esp + 4], 1
call fcn.00493840
test eax, eax
je 0x75a115
mov ecx, eax
mov dword [esp + 0x30], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x75a11b
add bl, 0xae
mov eax, dword [ebp + 8]
lea eax, [eax + 4]
mov dword [esp + 0x38], eax
mov al, bl
mov bl, byte [esp + 0x4c]
jmp 0x759e91
mov edx, eax
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x4c], edi
and ecx, 0xffffff48
add ecx, 0xfffffff6
mov dword [esp + 0x48], ecx
mov eax, dword [ebx]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + ecx*8 + 0x14]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov edi, ebx
mov ebx, edx
mov dword [esp], ebx
call fcn.007ce510
mov dword [esp + 0x38], edi
mov eax, dword [edi]
lea esi, [esi + esi*2]
mov eax, dword [eax + esi*8 + 4]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.0068f030
mov dword [esp + 0x1060], eax
test eax, eax
mov ecx, edi
jne 0x759941
mov eax, dword [esp + 0x48]
and eax, 4
xor eax, 0x87
xor al, 0xdf
movzx eax, al
mov edx, eax
xor edx, 0x38
cmp eax, 0x41
je 0x759948
mov dword [esp + 0x3c], edx
cmp eax, 0x5c
jne 0x7599a0
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov eax, dword [eax + esi*8 + 4]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebx
mov esi, ebx
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [esp + 0xc], 2
mov dword [esp + 8], 2
mov dword [esp + 4], 0x16
call fcn.007855d0
mov dword [esp + 0x1060], eax
test eax, eax
jne 0x75a1ca
mov edx, dword [esp + 0x3c]
mov al, dl
add al, 0xdd
movzx eax, al
add eax, edx
add al, 0x9f
jmp 0x759a08
mov edx, ebx
jmp 0x7594c5
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov eax, dword [eax + esi*8 + 4]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebx
mov esi, ebx
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [esp + 0xc], 2
mov dword [esp + 8], 2
mov dword [esp + 4], 0x16
call fcn.007855d0
mov dword [esp + 0x1060], eax
test eax, eax
jne 0x75a1ca
mov edx, dword [esp + 0x3c]
mov al, dl
add al, 0xe0
jmp 0x759a08
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov eax, dword [eax + esi*8 + 4]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebx
mov esi, ebx
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [esp + 0xc], 2
mov dword [esp + 8], 2
mov dword [esp + 4], 0x16
call fcn.007855d0
mov dword [esp + 0x1060], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x75a1ca
mov eax, dword [esp + 0x3c]
mov cl, al
xor cl, 0x38
xor al, 0x20
movzx ecx, cl
mov edx, ecx
and edx, 0xc7
add edx, 0xb
movzx eax, al
cmp eax, 0x44
jne 0x759a47
mov cl, dl
add cl, 0x29
mov edi, dword [esp + 0x1054]
test edi, edi
je 0x75a17a
mov edx, ecx
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x75a178
mov ecx, edx
movzx edx, cl
jmp 0x759a74
mov al, dl
xor al, 0xb
movzx ecx, al
add ecx, edx
xor cl, 0xeb
mov edi, dword [esp + 0x1054]
test edi, edi
je 0x75a17a
mov ebx, ecx
mov ecx, edi
and ecx, 1
inc ecx
xor ecx, edi
mov ecx, ebx
je 0x75a17a
cmp dword [edi + 8], 0
je 0x75a17a
mov dword [esp + 0x28], ecx
and edx, 0xffffffc8
add edx, 0x99
xor dl, 0xf3
mov al, dl
add al, 0x34
mov dword [esp + 0x4c], eax
mov cl, dl
dec cl
mov dword [esp + 0x2c], ecx
mov al, dl
add al, 5
mov byte [esp + 0x34], al
xor ebx, ebx
mov eax, 0xf5
mov dword [esp + 0x3c], edx
and cl, 0xa8
movzx edx, cl
add edx, 0x35
movzx ecx, byte [esp + 0x34]
cmp ecx, 0x17
je 0x759b13
mov dword [esp + 0x30], esi
cmp ecx, 0x69
je 0x759b3b
mov dword [esp + 0x44], edi
cmp ecx, 0x76
jne 0x759b74
mov cl, dl
xor cl, 0x5c
mov byte [esp + 0x34], cl
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x48], ecx
mov esi, ecx
imul esi, esi
and esi, 3
cmp esi, 3
mov edi, ebx
sete bl
movzx esi, bl
mov ebx, edi
cmp ecx, esi
jne 0x759b94
mov esi, dword [esp + 0x30]
jmp 0x759dff
mov dword [esp + 0x44], edi
mov dword [esp + 0x30], esi
mov cl, dl
xor cl, 0x43
mov byte [esp + 0x34], cl
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x48], ecx
test ecx, ecx
jne 0x759b94
mov esi, dword [esp + 0x30]
jmp 0x759dff
mov dword [esp + 0x44], edi
mov cl, dl
xor cl, 0x16
mov byte [esp + 0x34], cl
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x48], ecx
mov esi, ecx
imul esi, esi
and esi, 3
cmp esi, 2
mov edi, ebx
sete bl
movzx esi, bl
mov ebx, edi
cmp ecx, esi
jne 0x759b94
mov esi, dword [esp + 0x30]
jmp 0x759dff
mov cl, dl
xor cl, 0x22
mov byte [esp + 0x34], cl
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x48], ecx
test ecx, ecx
jne 0x759b94
mov esi, dword [esp + 0x30]
jmp 0x759dff
xor edx, 0x30
mov ecx, dword [esp + 0x2c]
movzx esi, cl
cmp esi, 0x11
je 0x759bb5
mov dword [esp + 0x40], ebx
cmp esi, 0x3d
mov esi, dword [esp + 0x38]
jne 0x759bcc
add dl, 0xc
jmp 0x759bcf
mov dword [esp + 0x40], ebx
lea ecx, [edx + edx + 0x18]
add cl, 4
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x38]
mov edi, dword [edx]
jmp 0x759bd5
xor dl, 0x38
mov edi, dword [esi]
mov dword [esp + 0x2c], edx
xor edx, edx
nop word [eax + eax]
lea esi, [edx + edx*2]
cmp dword [edi + esi*8], 0x36
je 0x759bef
mov bl, 1
test bl, bl
jne 0x759c0c
mov eax, dword [esp + 0x44]
mov ebx, dword [eax + 0xc]
mov eax, dword [esp + 0x40]
mov ebx, dword [ebx + eax*4]
mov eax, 0xf5
cmp ebx, dword [edi + esi*8 + 4]
je 0x759cf3
lea ebx, [eax + eax - 0xf3]
mov ecx, dword [esp + 0x4c]
movzx esi, cl
cmp esi, 0x11
je 0x759c60
cmp esi, 0x46
je 0x759c80
cmp esi, 0x48
jne 0x759cc0
add bl, 0x1a
mov dword [esp + 0x4c], ebx
mov esi, edx
not esi
and esi, 1
add esi, edx
setne bl
movzx esi, bl
add edx, esi
cmp edx, dword [esp + 0x48]
jae 0x759ce6
mov esi, 3
sub esi, edx
xor esi, edx
jne 0x759be0
jmp 0x759ce6
xor bl, 0xd9
mov dword [esp + 0x4c], ebx
mov esi, edx
imul esi, esi
and esi, 3
cmp esi, 2
adc edx, 0
jmp 0x759cdc
add bl, 0x51
mov dword [esp + 0x4c], ebx
mov esi, edx
not esi
and esi, 1
add esi, edx
setne bl
movzx esi, bl
add edx, esi
cmp edx, dword [esp + 0x48]
jb 0x759be0
mov esi, edx
imul esi, esi
and esi, 3
cmp esi, 3
je 0x759be0
jmp 0x759ce6
lea ecx, [eax - 0x21]
add cl, 0x72
mov dword [esp + 0x4c], ecx
mov esi, edx
and esi, 1
xor esi, edx
cmp esi, 0xffffffff
setne bl
movzx esi, bl
add edx, esi
cmp edx, dword [esp + 0x48]
jb 0x759be0
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x40]
jmp 0x759dff
lea eax, [edi + esi*8 + 4]
mov dword [esp + 0x48], eax
lea ebx, [esp + 0x50]
mov dword [esp], ebx
mov dword [esp + 8], 0x1000
mov dword [esp + 4], 0
call fcn.007ce3c0
mov ebx, dword [edi + esi*8 + 0x10]
lea eax, [ebx + 0x14]
mov ecx, eax
and ecx, 0xf
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
add ebx, 0x24
and ebx, 0xfffffff0
cmp ecx, edx
cmove ebx, eax
mov dword [esp + 0x60], 0x7661726c
mov eax, dword [edi + esi*8 + 0x14]
mov ecx, dword [edi + esi*8 + 0x10]
mov edi, ebx
lea ebx, [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
lea eax, [esp + 0x64]
mov dword [esp], eax
call fcn.007ce510
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0068ece0
mov dword [esp + 0x1060], eax
test eax, eax
jne 0x75a1d1
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov eax, dword [eax + esi*8 + 4]
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [esp + 0xc], 5
mov dword [esp + 8], 2
mov dword [esp + 4], 0x19
call fcn.007855d0
mov dword [esp + 0x1060], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x75a1d1
mov eax, dword [esp + 0x1054]
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x40]
mov eax, 0xf5
mov ecx, dword [esp + 0x3c]
movzx ecx, cl
cmp ecx, 0x46
jne 0x759e42
mov dl, 0x46
mov ecx, ebx
not ecx
and ecx, 1
add ecx, ebx
setne cl
movzx ecx, cl
add ebx, ecx
mov edi, dword [esp + 0x44]
cmp ebx, dword [edi + 8]
mov cl, 0x46
jb 0x759aad
mov ecx, ebx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov cl, 0x46
je 0x759aad
jmp 0x759e74
mov ecx, ebx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc ebx, 0
mov edi, dword [esp + 0x44]
cmp ebx, dword [edi + 8]
jae 0x759e74
mov edx, 0x42
xor dl, 0x50
mov ecx, ebx
and ecx, 1
xor ecx, ebx
not ecx
test ecx, ecx
mov cl, dl
jne 0x759aad
mov ecx, dword [esp + 0x28]
jmp 0x75a17a
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
mov bl, al
jmp 0x759e91
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], esi
and bl, 0xcf
movzx esi, bl
lea ebx, [esi + 0x2c]
movzx eax, al
cmp eax, 0x48
jne 0x759f26
xor bl, 0x32
mov al, bl
add al, 0x1c
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + ecx*8 + 0x14]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.007ce510
mov eax, dword [esp + 0x1054]
mov edi, dword [eax + 0x10]
lea esi, [esp + 0x13f4]
mov dword [esp], esi
call fcn.00692050
mov ecx, eax
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
jne 0x759fe9
mov dword [esp + 0x44], esi
movzx esi, bl
add bl, 0xdc
mov cl, bl
mov dl, byte [esp + 0x48]
mov al, dl
mov bl, dl
jmp 0x759f9c
mov al, bl
xor al, 0x14
movzx eax, al
sub eax, ebx
mov dword [esp + 0x48], eax
mov bl, al
add bl, 0x70
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + ecx*8 + 0x14]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.007ce510
mov eax, dword [esp + 0x1054]
mov edi, dword [eax + 0x10]
lea eax, [esp + 0x13f4]
mov dword [esp + 0x44], eax
mov dword [esp], eax
call fcn.00692050
mov ecx, eax
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
jne 0x759ff2
add esi, 0xffffffd2
mov ecx, dword [esp + 0x48]
add cl, 0x30
mov al, cl
mov byte [esp + 0x48], bl
and esi, 0xffffff97
and al, 0xbf
movzx ebx, al
add ebx, esi
xor ebx, 0x50
movzx eax, cl
mov esi, edi
cmp eax, 0x24
jne 0x759fff
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x44]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.0068e6c0
mov ecx, eax
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
jne 0x75a13c
xor bl, 0x64
jmp 0x75a023
mov edx, dword [esp + 0x30]
jmp 0x75a151
mov byte [esp + 0x48], bl
mov edx, dword [esp + 0x30]
jmp 0x75a151
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x44]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.0068e6c0
mov ecx, eax
test ecx, ecx
jne 0x75a142
xor bl, 0x50
mov dword [esp + 0x44], ebx
mov edi, dword [esi]
mov ebx, dword [esi + 4]
mov dword [esp], 6
call fcn.007b4100
lea ecx, [esp + 0x1068]
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 0x10], 0
mov dword [esp + 4], 0
call fcn.007b3ad0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x75a148
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
lea edx, [esp + 0x1068]
mov edi, edx
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], ecx
call fcn.007b3b60
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
mov ecx, edi
jne 0x75a14c
mov edi, esi
and al, 0xcb
movzx eax, al
xor eax, 0xe9
add al, 0x72
movzx eax, al
mov ebx, eax
xor ebx, 0x82
cmp eax, 8
je 0x75a1da
mov esi, edx
cmp eax, 0x30
je 0x75a1f5
cmp eax, 0x5b
jne 0x75a20b
mov dword [esp], ecx
call fcn.007b3c60
test eax, eax
jne 0x75a266
add bl, 0x32
jmp 0x75a204
mov bl, 0x5e
jmp 0x75a11f
mov bl, 0x5e
jmp 0x75a11f
mov bl, byte [esp + 0x4c]
jmp 0x75a11f
mov bl, byte [esp + 0x4c]
movzx eax, bl
cmp eax, 0x16
je 0x75a12a
cmp eax, 0x5e
mov dword [esp + 0x1060], 0x70000003
xor edx, edx
jmp 0x7594c5
mov edx, dword [esp + 0x30]
jmp 0x75a151
mov edx, dword [esp + 0x30]
jmp 0x75a151
mov edx, dword [esp + 0x30]
mov ecx, 0x700002bb
movzx eax, byte [esp + 0x48]
cmp eax, 0x2e
je 0x75a16c
cmp eax, 0x50
jne 0x75a16c
mov dword [esp + 0x1060], ecx
jmp 0x7594c5
mov dword [esp + 0x1060], ecx
jmp 0x7594c5
mov ecx, edx
movzx eax, cl
cmp eax, 0x51
je 0x75a185
cmp eax, 0x78
lea eax, [esp + 0x1060]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [esp + 0x18], 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
call fcn.007855d0
mov dword [esp + 0x1060], eax
mov edx, esi
jmp 0x7594c5
mov edx, dword [esp + 0x30]
jmp 0x7594c5
mov dword [esp], ecx
mov esi, edx
call fcn.007b3c60
mov edx, esi
test eax, eax
mov ecx, 0x700002bb
jne 0x75a151
jmp 0x75a22f
mov dword [esp], ecx
call fcn.007b3c60
test eax, eax
jne 0x75a266
xor bl, 0x82
movzx ebx, bl
mov edx, esi
jmp 0x75a22f
mov dword [esp], ecx
call fcn.007b3c60
test eax, eax
jne 0x75a266
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov edx, esi
je 0x75a14c
add bl, 0x2f
movzx ebx, bl
mov eax, dword [edi + 0xc]
test eax, eax
je 0x75a26d
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x75a277
mov ecx, dword [edi + 8]
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x75a281
mov ecx, 0x70000013
mov edx, dword [esp + 0x30]
jmp 0x75a151
mov edx, esi
jmp 0x75a14c
mov ecx, 0x70000013
jmp 0x75a151
mov ecx, 0x70000013
jmp 0x75a151
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
mov esi, ecx
sub esi, edx
movzx edx, byte [eax + esi]
sub ecx, edx
mov dword [edi + 8], ecx
lea edx, [esp + 0x1050]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00627940
test eax, eax
mov edx, dword [esp + 0x30]
mov ecx, 0x700002bb
jne 0x75a151
and ebx, 0x2c
add ebx, 0x5e
xor bl, 0x51
mov al, bl
add al, 0x28
mov byte [esp + 0x40], al
mov dword [esp + 0x1060], 0
mov eax, dword [esp + 0x1050]
mov ecx, dword [eax]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x75a30c
movzx ecx, byte [esp + 0x40]
jmp 0x75a530
xor edi, edi
movzx ecx, bl
mov edx, eax
mov dword [esp + 0x44], ebx
and ecx, 0xffffffc8
add ecx, 0x2f
movzx eax, byte [esp + 0x40]
cmp eax, 0x5f
jne 0x75a392
mov al, cl
mov dword [esp + 0x48], ecx
xor al, 0x70
mov byte [esp + 0x40], al
mov esi, dword [edx + 4]
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], edx
lea eax, [edi + edi*2]
mov dword [esp + 0x34], edi
mov ecx, dword [esi + eax*4]
mov ebx, dword [esi + eax*4 + 4]
mov dword [esp + 0x2c], ebx
lea eax, [ebx + ecx]
mov edi, eax
and edi, 0xf
mov esi, edi
imul esi, esi
and esi, 3
cmp esi, 3
sete dl
lea esi, [ebx + ecx + 0x10]
and esi, 0xfffffff0
movzx ecx, dl
cmp edi, ecx
cmove esi, eax
cmp esi, dword [esp + 0x4c]
ja 0x75a402
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
mov ecx, dword [esp + 0x44]
jne 0x75a3f5
jmp 0x75a406
mov al, cl
mov dword [esp + 0x48], ecx
add al, 0xf3
mov byte [esp + 0x40], al
mov eax, dword [edx + 4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edx
lea edx, [edi + edi*2]
mov dword [esp + 0x34], edi
mov esi, dword [eax + edx*4]
mov edx, dword [eax + edx*4 + 4]
mov dword [esp + 0x2c], edx
lea ecx, [edx + esi]
mov edi, ecx
and edi, 0xf
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 3
sete al
lea esi, [edx + esi + 0x10]
and esi, 0xfffffff0
movzx eax, al
cmp edi, eax
cmove esi, ecx
cmp esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
jbe 0x75a3f5
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x75a406
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
jmp 0x75a487
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x44], ecx
mov bl, byte [esp + 0x40]
and bl, 0x82
mov dword [esp + 4], esi
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0x30], eax
test eax, eax
je 0x75a54e
xor eax, eax
test al, al
jne 0x75a54e
movzx edi, bl
add edi, 0x8e
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
add eax, edx
mov ecx, esi
sub ecx, edx
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.007ce3c0
mov edx, dword [esp + 0x1050]
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x34]
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*4 + 4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], esi
mov ecx, dword [esp + 0x44]
and edi, 0xffffff40
movzx eax, cl
cmp eax, 0x37
mov ecx, edi
jne 0x75a4c0
lea ebx, [ecx + ecx + 0x66]
add bl, 0xd1
mov esi, dword [esp + 0x2c]
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp esi, eax
movzx ecx, bl
mov edi, dword [esp + 0x34]
je 0x75a513
jmp 0x75a4dc
add ecx, 0xd0
mov bl, cl
add bl, 0x5c
mov esi, dword [esp + 0x2c]
test esi, esi
mov edi, dword [esp + 0x34]
jne 0x75a4dc
movzx ecx, bl
jmp 0x75a513
and ecx, 0xffffff18
mov dword [esp + 0x48], ecx
lea eax, [edi + edi*2]
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + eax*4]
add ecx, dword [esp + 0x30]
mov eax, dword [edx + eax*4 + 8]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.007ce510
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x1050]
and ecx, 0xffffffc0
inc edi
cmp edi, dword [edx]
jb 0x75a313
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
je 0x75a313
and ecx, 0xffffffa0
xor ecx, 0xcd
mov dword [esp + 0x48], ecx
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x38]
jmp 0x759881
xor bl, 0x6f
movzx eax, bl
cmp eax, 0x22
jmp 0x75a12a