Function at 0x9d2460
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x6d0
mov esi, esp
mov edi, dword [ebp + 8]
call fcn.009d4770
push eax
mov ebx, esp
push eax
mov dword [esi + 0x21c], esp
sub esp, 0x3c
mov dword [esi + 0xc0], esp
push eax
mov dword [esi + 0x218], esp
sub esp, 0x34
mov dword [esi + 0xbc], esp
push eax
mov dword [esi + 0x214], esp
sub esp, 0x44
mov dword [esi + 0x1b4], esp
sub esp, 0x10
mov dword [esi + 0x1b0], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1ac], eax
mov esp, eax
push eax
push eax
mov dword [esi + 0xb8], esp
push eax
mov dword [esi + 0x210], esp
sub esp, 0x44
mov dword [esi + 0x20c], esp
sub esp, 0x10
mov dword [esi + 0xb4], esp
sub esp, 4
mov dword [esp], edi
call fcn.009c2750
add esp, 4
mov edx, eax
cmp edx, 0
sete al
test al, 1
jne 0x9d2502
jmp 0x9d2509
xor eax, eax
jmp 0x9d42b6
mov dword [esi + 0xc4], ebx
xor ebx, ebx
jmp 0x9d2513
sub esp, 4
mov dword [esp], edx
mov edi, edx
call fcn.009c2b20
add esp, 4
cmp ebx, eax
jb 0x9d252e
mov al, 1
jmp 0x9d42b6
sub esp, 8
mov dword [esp], edi
mov dword [esi + 0x60], ebx
mov dword [esp + 4], ebx
call fcn.009c2b30
add esp, 8
mov cl, byte [esi + 0x110]
mov byte [esi + 0x128], cl
mov byte [esi + 0x16], 0x36
mov byte [esi + 0x17], 0xa4
movzx ecx, byte [esi + 0x16]
mov edx, ecx
xor edx, 0xffffffff
or edx, 0x84
or ecx, 0x7ebecd7b
and edx, ecx
mov ecx, edx
and ecx, 1
or edx, 1
add edx, 0xa0
add ecx, edx
add cl, 0x87
mov byte [esi + 0x16], cl
movzx ecx, byte [esi + 0x17]
mov edx, ecx
xor edx, 0xffffffff
or edx, 0x83
or ecx, 0x7ebecd7c
and edx, ecx
mov ecx, edx
and ecx, 1
or edx, 1
add edx, 0xa0
add ecx, edx
add cl, 0x87
mov byte [esi + 0x17], cl
lea ecx, [esi + 0x16]
sub esp, 0xc
mov dword [esi + 0x48], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call fcn.009c2a20
add esp, 0xc
cmp eax, 0
mov edx, edi
je 0x9d26d7
mov dword [esi + 8], edx
mov al, byte [esi + 0x10c]
mov byte [esi + 0x12c], al
mov byte [esi + 0x5d], 0x4d
mov byte [esi + 0x5e], 0xb8
mov byte [esi + 0x5f], 0x2d
xor eax, eax
cmp eax, 3
jae 0x9d264b
mov cl, byte [esi + eax + 0x5d]
mov edx, eax
and edx, 0xb1
mov ebx, eax
and ebx, 0xb1
mov edi, eax
and edi, 2
xor edi, 2
imul edi, ebx
mov ebx, eax
and ebx, 2
or edx, 2
imul edx, ebx
add edx, edi
mov ebx, eax
xor ebx, 0xb3
add ebx, edx
xor bl, cl
add bl, 0x68
mov byte [esi + eax + 0x5d], bl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x9d25f9
lea eax, [esi + 0x5d]
sub esp, 0xc
mov ecx, dword [esi + 0x48]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.009c2a20
add esp, 0xc
mov edx, dword [esi + 8]
cmp eax, 0
je 0x9d26d7
mov edi, edx
mov al, byte [esi + 0x108]
mov byte [esi + 0x130], al
mov byte [esi + 0x14], 0x9e
mov byte [esi + 0x15], 0xfc
mov al, byte [esi + 0x14]
xor al, 0xe3
add al, 0xe8
mov byte [esi + 0x14], al
mov al, byte [esi + 0x15]
xor al, 0xe4
add al, 0xe8
mov byte [esi + 0x15], al
lea eax, [esi + 0x14]
sub esp, 0xc
mov ecx, dword [esi + 0x48]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.009c2a20
add esp, 0xc
cmp eax, 0
setne al
and al, al
xor al, 0xff
xor al, 0xff
or al, 0
xor al, 0xff
or al, 0
test al, 1
mov edx, edi
jne 0x9d26d7
jmp 0x9d26df
mov eax, dword [esi + 0x60]
jmp 0x9d42ac
mov al, byte [esi + 0x104]
mov byte [esi + 0x134], al
mov byte [esi + 0x12], 0xcc
mov byte [esi + 0x13], 0xba
movzx eax, byte [esi + 0x12]
mov ecx, eax
or ecx, 0x773f24ce
and eax, 0xce
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
shl ecx, 1
and ecx, 0xee
xor eax, 0x88
sub ecx, eax
mov byte [esi + 0x12], cl
movzx eax, byte [esi + 0x13]
mov ecx, eax
or ecx, 0x773f24cd
and eax, 0xcd
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
shl ecx, 1
and ecx, 0xee
xor eax, 0x88
sub ecx, eax
mov byte [esi + 0x13], cl
lea eax, [esi + 0x12]
sub esp, 8
mov ecx, dword [esi + 0x48]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.009c2460
add esp, 8
mov dword [esi + 0x204], eax
mov al, byte [esi + 0x100]
mov byte [esi + 0x138], al
mov byte [esi + 0x5a], 0xaa
mov byte [esi + 0x5b], 0xb9
mov byte [esi + 0x5c], 0xe
xor eax, eax
cmp eax, 3
jae 0x9d27cf
movzx edi, byte [esi + eax + 0x5a]
mov edx, 0x379c7693
sub edx, eax
or edx, edi
mov ecx, 0x93
sub ecx, eax
and ecx, edi
xor edx, 0xffffffff
or ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor edx, 2
mov edi, ecx
and edi, 1
mov ebx, 0x60
sub ebx, ecx
and ebx, 0xfe
or ebx, edi
xor ebx, 0xfe
add ebx, edx
mov byte [esi + eax + 0x5a], bl
add eax, 1
jmp 0x9d277f
jmp 0x9d27d1
jmp 0x9d27d3
sub esp, 8
lea eax, [esi + 0x5a]
mov dword [esp + 4], eax
mov edi, dword [esi + 0x48]
mov dword [esp], edi
call fcn.009c2560
add esp, 8
fnstcw word [esi + 0x66]
movzx eax, word [esi + 0x66]
or eax, 0xc00
mov word [esi + 0x19a], ax
fldcw word [esi + 0x19a]
fistp dword [esi + 0x220]
fldcw word [esi + 0x66]
mov eax, dword [esi + 0x220]
mov dword [esi + 0x44], eax
mov al, byte [esi + 0xfc]
mov byte [esi + 0x13c], al
call fcn.009d4770
call fcn.009d4770
call fcn.009d4770
call fcn.009d4770
mov byte [esi + 0x10], 0xac
call fcn.009d4770
call fcn.009d4770
mov byte [esi + 0x11], 0xca
movzx eax, byte [esi + 0x10]
xor eax, 0xb5ca4fc1
add eax, 0x51ad81f7
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov byte [esi + 0x10], al
movzx eax, byte [esi + 0x11]
xor eax, 0xb5ca4fc2
add eax, 0x51ad81f7
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov byte [esi + 0x11], al
sub esp, 8
lea eax, [esi + 0x10]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.009c2560
add esp, 8
fnstcw word [esi + 0x64]
movzx eax, word [esi + 0x64]
or eax, 0xc00
mov word [esi + 0x198], ax
fldcw word [esi + 0x198]
fistp dword [esi + 0x224]
fldcw word [esi + 0x64]
mov edi, dword [esi + 0x224]
lea eax, [esi + 0x2c8]
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esi + 0x204]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.009cb6c0
add esp, 0x10
lea eax, [esi + 0x2c8]
lea ecx, [esi + 0x40]
lea edx, [esi + 0x1bc]
xor ebx, ebx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.009cbe20
add esp, 0x10
test al, 1
jne 0x9d292b
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x60]
jmp 0x9d42ac
mov ebx, dword [esi + 0xc4]
cmp edi, 0
sete al
mov byte [esi + 0x53], al
test al, 1
jne 0x9d2943
jmp 0x9d39c4
mov al, byte [esi + 0xf8]
mov byte [esi + 0x140], al
mov byte [esi + 0xe], 0x69
mov byte [esi + 0xf], 0x1a
mov al, byte [esi + 0xe]
xor al, 0x91
add al, 0x78
mov byte [esi + 0xe], al
mov al, byte [esi + 0xf]
xor al, 0x92
add al, 0x78
mov byte [esi + 0xf], al
lea eax, [esi + 0xe]
sub esp, 8
mov ecx, dword [esi + 0x48]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.009c2460
add esp, 8
cmp eax, 0
setne cl
test cl, 1
jne 0x9d2993
jmp 0x9d2c33
sub esp, 4
mov dword [esi + 0x1cc], eax
mov dword [esp], eax
call fcn.009d42d0
add esp, 4
mov dword [esi + 0x1a0], eax
add eax, 1
mov ecx, 2
mov dword [esi + 0x1c4], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x9d29cc
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.009c8f10
add esp, 4
mov edi, eax
xor eax, eax
sub esp, 0x10
mov dword [esp], edi
mov eax, dword [esi + 0x1c4]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x1cc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.009cb6c0
add esp, 0x10
xor eax, eax
lea eax, [esi + 0xf4]
sub esp, 0x18
mov dword [esp], 0
mov dword [esi + 4], edi
mov dword [esp + 4], edi
mov ecx, dword [esi + 0x1a0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x784994]
mov cl, byte [esi + 0xf0]
mov byte [esi + 0x144], cl
mov byte [esi + 0x24], 0x99
mov byte [esi + 0x25], 0xbb
mov byte [esi + 0x26], 0xbc
mov byte [esi + 0x27], 0xfd
movzx ecx, byte [esi + 0x24]
mov edx, ecx
xor edx, 0x89e3629e
xor edx, 0x8b
mov edi, ecx
and edi, 0x15
or edx, edi
and ecx, 0x3c933115
xor edx, 0xffffffff
or ecx, edx
add cl, 0xb0
mov byte [esi + 0x24], cl
movzx ecx, byte [esi + 0x25]
mov edx, ecx
xor edx, 0x89e3629f
xor edx, 0x8b
mov edi, ecx
and edi, 0x14
or edx, edi
and ecx, 0x3c933114
xor edx, 0xffffffff
or ecx, edx
add cl, 0xb0
mov byte [esi + 0x25], cl
movzx ecx, byte [esi + 0x26]
mov edx, ecx
xor edx, 0x89e36298
xor edx, 0x8b
mov edi, ecx
and edi, 0x13
or edx, edi
and ecx, 0x3c933113
xor edx, 0xffffffff
or ecx, edx
add cl, 0xb0
mov byte [esi + 0x26], cl
movzx ecx, byte [esi + 0x27]
mov edx, ecx
xor edx, 0x89e36299
xor edx, 0x8b
mov edi, ecx
and edi, 0x12
or edx, edi
and ecx, 0x3c933112
xor edx, 0xffffffff
or ecx, edx
add cl, 0xb0
mov byte [esi + 0x27], cl
mov ecx, dword [esi + 0x24]
cmp eax, ecx
jne 0x9d2b43
jmp 0x9d2b12
sub esp, 4
mov eax, dword [esi + 4]
mov edi, eax
mov dword [esp], eax
call fcn.009c8f20
add esp, 4
mov eax, dword [esi + 0x40]
sub esp, 4
mov dword [esp], eax
call fcn.009f6a20
add esp, 4
mov eax, 4
mov edx, dword [esi + 8]
jmp 0x9d2c1f
mov eax, dword [esi + 0xf4]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x9d2b5f
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.009c8f10
add esp, 4
mov ecx, dword [0x784994]
mov dword [esi + 0x1c0], ecx
mov ecx, dword [esi + 0xf4]
xor edx, edx
sub esp, 0x18
mov dword [esp], 0
mov edi, dword [esi + 4]
mov dword [esp + 4], edi
mov edx, dword [esi + 0x1a0]
mov dword [esp + 8], edx
mov dword [esi + 0x19c], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esi + 0xf4]
mov dword [esp + 0x14], eax
call dword [esi + 0x1c0]
cmp eax, 0
jge 0x9d2c02
jmp 0x9d2bc1
sub esp, 4
mov eax, dword [esi + 0x19c]
mov dword [esp], eax
call fcn.009c8f20
add esp, 4
jmp 0x9d2bd7
sub esp, 4
mov dword [esp], edi
call fcn.009c8f20
add esp, 4
jmp 0x9d2be7
mov eax, dword [esi + 0x40]
sub esp, 4
mov dword [esp], eax
call fcn.009f6a20
add esp, 4
mov eax, 4
mov edx, dword [esi + 8]
jmp 0x9d2c1f
jmp 0x9d2c04
sub esp, 4
mov dword [esp], edi
call fcn.009c8f20
add esp, 4
mov edx, dword [esi + 8]
xor eax, eax
mov edi, dword [esi + 0x19c]
jmp 0x9d2c1f
cmp eax, 0
sete cl
test cl, 1
jne 0x9d3228
jmp 0x9d322a
call fcn.009c9750
mov edi, eax
and edi, 0xf
add edi, 0x10
xor ebx, ebx
lea ecx, [esi + 0x288]
cmp ebx, edi
jb 0x9d2e92
mov word [ecx], 0
mov al, byte [esi + 0xe8]
mov byte [esi + 0x14c], al
mov byte [esi + 0x86], 0x9b
mov byte [esi + 0x87], 0x7f
mov byte [esi + 0x88], 0xd4
mov byte [esi + 0x89], 0x61
mov byte [esi + 0x8a], 0xa7
mov byte [esi + 0x8b], 0x63
mov byte [esi + 0x8c], 0xa9
mov byte [esi + 0x8d], 0x65
mov byte [esi + 0x8e], 0xd6
mov byte [esi + 0x8f], 0x67
mov byte [esi + 0x90], 0x8d
mov byte [esi + 0x91], 0x69
mov byte [esi + 0x92], 0xd6
mov byte [esi + 0x93], 0x6b
mov byte [esi + 0x94], 0x6c
mov byte [esi + 0x95], 0x6d
xor eax, eax
cmp eax, 0x10
jae 0x9d2d18
movzx edx, byte [esi + eax + 0x86]
mov edi, eax
and edi, 0x2013d2f2
xor edi, 0x2013d2f2
mov ecx, eax
and ecx, 0xdfec2d0d
sub ecx, edi
xor ecx, edx
add ecx, 0x9e978f
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esi + eax + 0x86], cl
add eax, 1
jmp 0x9d2cd3
lea eax, [esi + 0x228]
lea ecx, [esi + 0x86]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.009caa40
add esp, 8
lea ecx, [esi + 0x288]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.009caa40
add esp, 8
lea ecx, [esi + 0x228]
xor ecx, 0xffffffff
add eax, ecx
add eax, 1
sar eax, 1
xor ecx, ecx
lea edx, [esi + 0x228]
lea ecx, [esi + 0xe4]
sub esp, 0x18
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esi + 0x208], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x784994]
mov cl, byte [esi + 0xe0]
mov byte [esi + 0x150], cl
mov byte [esi + 0x1c], 0xb4
mov byte [esi + 0x1d], 0x48
mov byte [esi + 0x1e], 0x49
mov byte [esi + 0x1f], 0xa
mov cl, byte [esi + 0x1c]
movzx edx, cl
and edx, 0x5d84232f
mov ebx, edx
and ebx, 0xfd
mov edi, edx
and edi, 2
xor edi, 2
imul edi, ebx
mov ebx, edx
and ebx, 2
or edx, 2
imul edx, ebx
add edx, edi
mov ebx, 0x5d84232f
sub ebx, edx
add bl, cl
add bl, 0x88
mov byte [esi + 0x1c], bl
mov cl, byte [esi + 0x1d]
movzx edx, cl
and edx, 0x5d842330
and edx, 0xfd
shl edx, 1
mov ebx, 0x5d842330
sub ebx, edx
add bl, cl
add bl, 0x88
mov byte [esi + 0x1d], bl
mov cl, byte [esi + 0x1e]
movzx edx, cl
and edx, 0x5d842331
and edx, 0xfd
shl edx, 1
mov ebx, 0x5d842331
sub ebx, edx
add bl, cl
add bl, 0x88
mov byte [esi + 0x1e], bl
mov cl, byte [esi + 0x1f]
movzx edx, cl
and edx, 0x5d842332
mov ebx, edx
and ebx, 0xfd
mov edi, edx
and edi, 2
xor edi, 2
imul edi, ebx
mov ebx, edx
and ebx, 2
or edx, 2
imul edx, ebx
add edx, edi
mov ebx, 0x5d842332
sub ebx, edx
add bl, cl
add bl, 0x88
mov byte [esi + 0x1f], bl
cmp eax, dword [esi + 0x1c]
setne al
test al, 1
mov ebx, dword [esi + 0xc4]
mov edi, dword [esi + 8]
jne 0x9d2f63
jmp 0x9d2f85
mov dword [esi + 0x1fc], ecx
call fcn.009c9750
mov cl, byte [esi + 0xec]
mov byte [esi + 0x148], cl
mov byte [esi + 0x20], 0x65
mov byte [esi + 0x21], 0x42
mov byte [esi + 0x22], 0x43
mov byte [esi + 0x23], 0x44
movzx edx, byte [esi + 0x20]
xor edx, 0xcfc8df09
mov ecx, edx
shl ecx, 1
and ecx, 2
xor edx, 0xfe
add edx, 0x47
sub ecx, edx
add cl, 0xfd
mov byte [esi + 0x20], cl
movzx edx, byte [esi + 0x21]
xor edx, 0xcfc8df0a
mov ecx, edx
shl ecx, 1
and ecx, 2
xor edx, 0xfe
add edx, 0x47
sub ecx, edx
add cl, 0xfd
mov byte [esi + 0x21], cl
movzx edx, byte [esi + 0x22]
xor edx, 0xcfc8df0b
mov ecx, edx
shl ecx, 1
and ecx, 2
xor edx, 0xfe
add edx, 0x47
sub ecx, edx
add cl, 0xfd
mov byte [esi + 0x22], cl
movzx edx, byte [esi + 0x23]
xor edx, 0xcfc8df0c
mov ecx, edx
shl ecx, 1
and ecx, 2
xor edx, 0xfe
add edx, 0x47
sub ecx, edx
add cl, 0xfd
mov byte [esi + 0x23], cl
cdq
idiv dword [esi + 0x20]
movsx eax, byte [edx + 0x77bb88]
mov edx, dword [esi + 0x1fc]
mov ecx, edx
add ecx, 2
mov word [edx], ax
add ebx, 1
jmp 0x9d2c48
mov eax, dword [esi + 0x40]
sub esp, 4
mov dword [esp], eax
call fcn.009f6a20
add esp, 4
mov dword [esi + 4], 0
mov eax, 4
jmp 0x9d3216
mov eax, dword [esi + 0xe4]
mov ecx, eax
and ecx, 4
shl ecx, 1
xor eax, 4
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x9d2fad
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.009c8f10
add esp, 4
mov edi, dword [0x784994]
mov ecx, dword [esi + 0xe4]
xor edx, edx
lea edx, [esi + 0x228]
sub esp, 0x18
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esi + 0x208]
mov dword [esp + 8], edx
mov dword [esi + 4], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esi + 0xe4]
mov dword [esp + 0x14], eax
call edi
cmp eax, 0
jge 0x9d3034
mov edi, dword [esi + 8]
jmp 0x9d3008
sub esp, 4
mov eax, dword [esi + 4]
mov dword [esp], eax
call fcn.009c8f20
add esp, 4
mov eax, dword [esi + 0x40]
sub esp, 4
mov dword [esp], eax
call fcn.009f6a20
add esp, 4
mov eax, 4
jmp 0x9d3216
mov eax, dword [esi + 0x44]
cmp eax, 0
jne 0x9d30d9
mov al, byte [esi + 0xdc]
mov byte [esi + 0x154], al
mov byte [esi + 0x7c], 0xd9
mov byte [esi + 0x7d], 0xf8
mov byte [esi + 0x7e], 0x5c
mov byte [esi + 0x7f], 0xfa
mov byte [esi + 0x80], 0x73
mov byte [esi + 0x81], 0xfc
mov byte [esi + 0x82], 0x58
mov byte [esi + 0x83], 0xfe
mov byte [esi + 0x84], 0xff
mov byte [esi + 0x85], 0xf0
mov edi, dword [esi + 4]
xor eax, eax
cmp eax, 0xa
jae 0x9d30bc
mov dl, byte [esi + eax + 0x7c]
mov edi, eax
add edi, 0x3f
xor ecx, ecx
sub ecx, eax
and ecx, 0xcd
and edi, 0x32
or ecx, edi
mov edi, dword [esi + 4]
xor cl, dl
xor cl, 0xcd
add cl, 8
mov byte [esi + eax + 0x7c], cl
add eax, 1
jmp 0x9d308b
lea eax, [esi + 0x7c]
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.009d4700
add esp, 8
mov edi, dword [esi + 8]
jmp 0x9d3212
mov edi, dword [esi + 8]
cmp eax, 1
sete al
test al, 1
jne 0x9d30eb
jmp 0x9d318f
mov al, byte [esi + 0xd8]
mov byte [esi + 0x158], al
mov byte [esi + 0x72], 0x66
mov byte [esi + 0x73], 0x49
mov byte [esi + 0x74], 0xae
mov byte [esi + 0x75], 0x4b
mov byte [esi + 0x76], 0xa0
mov byte [esi + 0x77], 0x4d
mov byte [esi + 0x78], 0xa2
mov byte [esi + 0x79], 0x4f
mov byte [esi + 0x7a], 0x50
mov byte [esi + 0x7b], 0x51
xor eax, eax
mov edi, dword [esi + 4]
cmp eax, 0xa
jae 0x9d316c
movzx edi, byte [esi + eax + 0x72]
mov edx, eax
add edx, 8
mov ebx, 0xaec6e4f7
sub ebx, eax
mov ecx, 0xaec6e4f7
sub ecx, eax
or ebx, ecx
xor ebx, 0xffffffff
mov ecx, edi
or ecx, ebx
and edx, edi
mov edi, dword [esi + 4]
sub ecx, edx
add ecx, 0x763727bf
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esi + eax + 0x72], cl
add eax, 1
jmp 0x9d3124
lea eax, [esi + 0x72]
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.009d4700
add esp, 8
mov ebx, dword [esi + 0xc4]
mov edi, dword [esi + 8]
jmp 0x9d3212
cmp dword [esi + 0x44], 2
jne 0x9d3212
mov al, byte [esi + 0xd4]
mov byte [esi + 0x15c], al
mov byte [esi + 0x68], 0x71
mov byte [esi + 0x69], 0x20
mov byte [esi + 0x6a], 0xb1
mov byte [esi + 0x6b], 0x22
mov byte [esi + 0x6c], 0xb0
mov byte [esi + 0x6d], 0x24
mov byte [esi + 0x6e], 0x74
mov byte [esi + 0x6f], 0x26
mov byte [esi + 0x70], 0x27
mov byte [esi + 0x71], 0x18
xor eax, eax
cmp eax, 0xa
jae 0x9d31f8
mov dl, byte [esi + eax + 0x68]
movzx ecx, dl
mov edi, eax
add edi, 0x17
and edi, ecx
shl edi, 1
mov ecx, eax
sub ecx, edi
mov edi, dword [esi + 8]
add cl, 0x97
add cl, dl
add cl, 0x48
mov byte [esi + eax + 0x68], cl
add eax, 1
jmp 0x9d31cb
lea eax, [esi + 0x68]
sub esp, 8
mov ecx, dword [esi + 4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.009d4700
add esp, 8
jmp 0x9d3212
xor eax, eax
jmp 0x9d3216
cmp eax, 0
sete cl
mov edx, edi
test cl, 1
mov edi, dword [esi + 4]
jne 0x9d3228
jmp 0x9d322a
xor eax, eax
cmp eax, 0
mov eax, dword [esi + 0x60]
jne 0x9d42ac
lea eax, [esi + 0x1b8]
xor ecx, ecx
sub esp, 0x1c
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 0x100002
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 5
mov dword [esp + 0x14], 0x60
mov dword [esp + 0x18], 0x80
call fcn.009f9b70
add esp, 0x1c
mov ecx, eax
cmp ecx, 0
mov dword [esi + 4], edi
jl 0x9d3391
mov eax, dword [esi + 0x1bc]
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x1b8]
xor edi, edi
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call 0x9fa120
add esp, 0x10
mov ecx, eax
mov eax, dword [esi + 0x1b8]
mov dword [esi + 0x1d4], eax
mov al, byte [esi + 0x124]
mov byte [esi + 0x184], al
mov byte [esi + 0x38], 0x1e
mov byte [esi + 0x39], 0x1d
mov byte [esi + 0x3a], 0x1c
mov byte [esi + 0x3b], 0x1b
mov al, byte [esi + 0x38]
xor al, 0xd9
add al, 0x38
mov byte [esi + 0x38], al
mov al, byte [esi + 0x39]
xor al, 0xda
add al, 0x38
mov byte [esi + 0x39], al
mov al, byte [esi + 0x3a]
xor al, 0xdb
add al, 0x38
mov byte [esi + 0x3a], al
mov al, byte [esi + 0x3b]
xor al, 0xdc
add al, 0x38
mov byte [esi + 0x3b], al
mov eax, dword [esi + 0x38]
mov dword [esi + 0x1e8], eax
xor eax, eax
cmp eax, dword [0x784998]
jb 0x9d331c
jmp 0x9d3391
mov edi, dword [0x78499c]
cmp dword [edi + eax*8], 0xb430e561
sete dl
mov byte [esi + 0x4f], dl
test dl, 1
mov dword [esi + 0x1d8], eax
jne 0x9d333c
jmp 0x9d337e
mov eax, dword [edi + eax*8 + 4]
cmp eax, dword [esi + 0x1e8]
je 0x9d337e
mov dword [esi + 0x1f8], ecx
mov ecx, dword [0x7849a0]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esi + 0x1d4]
mov dword [esp + 0xc], eax
call fcn.009f7df0
mov ecx, dword [esi + 0x1f8]
add esp, 0x10
test byte [esi + 0x4f], 1
je 0x9d3386
jmp 0x9d3391
mov eax, dword [esi + 0x1d8]
add eax, 1
jmp 0x9d3312
mov edi, ecx
mov eax, dword [esi + 0x40]
sub esp, 4
mov dword [esp], eax
call fcn.009f6a20
add esp, 4
mov dword [esi + 0x40], 0
cmp edi, 0
setge al
test al, 1
mov edx, dword [esi + 8]
jne 0x9d33ce
jmp 0x9d33ba
mov edi, dword [esi + 4]
mov dword [esi + 0x18], 0
mov eax, 4
jmp 0x9d39b3
cmp dword [esi + 0x44], 1
sete al
mov edi, dword [esi + 4]
test al, 1
jne 0x9d33e1
jmp 0x9d373f
mov al, byte [esi + 0xd0]
mov byte [esi + 0x160], al
mov byte [esi + 0x57], 0x13
mov byte [esi + 0x58], 8
mov byte [esi + 0x59], 0xb7
xor eax, eax
cmp eax, 3
jae 0x9d3439
movzx edx, byte [esi + eax + 0x57]
mov ecx, eax
add ecx, 0xab150d5d
mov ebx, ecx
shl ebx, 1
mov edi, eax
add edi, 0x5c
sub edi, ebx
and edi, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, edi
mov edx, ecx
shl edx, 1
and edx, 0x2e
xor ecx, 0x17
add ecx, edx
add cl, 1
mov byte [esi + eax + 0x57], cl
add eax, 1
jmp 0x9d33fb
lea eax, [esi + 0x57]
sub esp, 8
mov ecx, dword [esi + 0x48]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.009c2460
add esp, 8
mov dword [esi + 0xb0], eax
mov al, byte [esi + 0xcc]
mov byte [esi + 0x164], al
mov byte [esi + 0x54], 0xc8
mov byte [esi + 0x55], 0xd8
mov byte [esi + 0x56], 0xab
xor eax, eax
mov edi, dword [esi + 4]
cmp eax, 3
jae 0x9d3490
mov cl, byte [esi + eax + 0x54]
mov dl, al
add dl, 0xa1
xor dl, cl
add dl, 0xf8
mov byte [esi + eax + 0x54], dl
add eax, 1
jmp 0x9d3474
lea eax, [esi + 0x54]
sub esp, 8
mov ecx, dword [esi + 0x48]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.009c2460
add esp, 8
mov dword [esi + 0xac], eax
sub esp, 4
mov dword [esp], edi
call fcn.009d4750
add esp, 4
mov dword [esi + 0x1d0], eax
cmp dword [esi + 0xb0], 0
setne al
mov dword [esi + 0xa8], 0
mov byte [esi + 0x51], al
test al, 1
jne 0x9d34df
jmp 0x9d3508
sub esp, 4
mov eax, dword [esi + 0xb0]
mov dword [esp], eax
call fcn.009c9130
add esp, 4
add eax, 0x64f51a82
add eax, 1
sub eax, 0x64f51a82
mov dword [esi + 0xa8], eax
jmp 0x9d3508
cmp dword [esi + 0xac], 0
setne al
xor edx, edx
mov byte [esi + 0x52], al
test al, 1
jne 0x9d351d
jmp 0x9d3538
sub esp, 4
mov eax, dword [esi + 0xac]
mov dword [esp], eax
call fcn.009c9130
add esp, 4
mov edx, eax
add edx, 1
jmp 0x9d3538
xor ecx, ecx
sub ecx, dword [esi + 0x1d0]
mov eax, 9
sub eax, ecx
mov ecx, eax
mov edi, dword [esi + 0xa8]
and ecx, edi
or eax, edi
add eax, ecx
mov dword [esi + 0x1a4], edx
add eax, edx
sub eax, 0xffffffff
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x9d3576
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.009c8f10
add esp, 4
mov dword [esi + 0x18], eax
mov al, byte [esi + 0xc8]
mov byte [esi + 0x168], al
mov byte [esi + 0x96], 0xcd
mov byte [esi + 0x97], 0x50
mov byte [esi + 0x98], 0xc4
mov byte [esi + 0x99], 0x52
mov byte [esi + 0x9a], 0xcd
mov byte [esi + 0x9b], 0x54
mov byte [esi + 0x9c], 0xf1
mov byte [esi + 0x9d], 0x56
mov byte [esi + 0x9e], 0xcb
mov byte [esi + 0x9f], 0x48
mov byte [esi + 0xa0], 0xd5
mov byte [esi + 0xa1], 0x4a
mov byte [esi + 0xa2], 0x18
mov byte [esi + 0xa3], 0x4c
mov byte [esi + 0xa4], 0x1f
mov byte [esi + 0xa5], 0x4e
mov byte [esi + 0xa6], 0x4f
mov byte [esi + 0xa7], 0x40
xor eax, eax
mov edi, dword [esi + 4]
cmp eax, 0x12
jae 0x9d3647
movzx edx, byte [esi + eax + 0x96]
mov ecx, eax
add ecx, 0x29a60967
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edi, dword [esi + 4]
add cl, 0xc8
mov byte [esi + eax + 0x96], cl
add eax, 1
jmp 0x9d3616
lea eax, [esi + 0x96]
sub esp, 8
mov ecx, dword [esi + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.009caa40
add esp, 8
mov ecx, eax
add ecx, 2
mov word [eax], 0x20
add ecx, 2
mov word [eax + 2], 0x22
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], edi
call fcn.009caa40
add esp, 8
mov ecx, edi
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp ecx, 0
je 0x9d36ab
sub esp, 4
mov eax, dword [esi + 4]
mov dword [esp], eax
call fcn.009c8f20
add esp, 4
jmp 0x9d36ab
mov edx, dword [esi + 0x1a4]
test byte [esi + 0x51], 1
jne 0x9d36b9
jmp 0x9d36fb
mov ecx, edi
add ecx, 2
mov word [edi], 0x2c
xor eax, eax
sub esp, 0x10
mov dword [esp], ecx
mov eax, dword [esi + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0xb0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov edi, ecx
call fcn.009cb6c0
add esp, 0x10
shl eax, 1
add edi, eax
mov edx, dword [esi + 0x1a4]
test byte [esi + 0x52], 1
jne 0x9d3703
jmp 0x9d3733
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edx
mov eax, dword [esi + 0xac]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.009cb6c0
add esp, 0x10
xor edi, edi
xor eax, eax
mov edx, dword [esi + 8]
jmp 0x9d39ac
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x44]
cmp eax, 2
je 0x9d3753
jmp 0x9d39ac
sub esp, 4
mov dword [esp], edi
call fcn.009d4750
add esp, 4
xor ecx, ecx
sub ecx, eax
mov eax, 0x1d
sub eax, ecx
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x9d378d
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.009c8f10
add esp, 4
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x21c]
mov al, byte [eax]
mov byte [esi + 0x16c], al
mov byte [ebx], 0xf3
mov byte [ebx + 1], 0xd2
mov byte [ebx + 2], 0xd3
mov byte [ebx + 3], 0xd4
mov dl, byte [ebx]
movzx ecx, dl
and ecx, 0x1f59e219
shl ecx, 1
mov eax, ecx
xor eax, 0x1f59e219
and ecx, 0x60a61de6
shl ecx, 1
sub eax, ecx
add al, dl
add al, 0x38
mov byte [ebx], al
mov dl, byte [ebx + 1]
movzx ecx, dl
and ecx, 0x1f59e21a
shl ecx, 1
mov eax, ecx
xor eax, 0x1f59e21a
and ecx, 0x60a61de5
shl ecx, 1
sub eax, ecx
add al, dl
add al, 0x38
mov byte [ebx + 1], al
mov dl, byte [ebx + 2]
movzx ecx, dl
and ecx, 0x1f59e21b
shl ecx, 1
mov eax, ecx
xor eax, 0x1f59e21b
and ecx, 0x60a61de4
shl ecx, 1
sub eax, ecx
add al, dl
add al, 0x38
mov byte [ebx + 2], al
mov dl, byte [ebx + 3]
movzx ecx, dl
and ecx, 0x1f59e21c
shl ecx, 1
mov eax, ecx
xor eax, 0x1f59e21c
and ecx, 0x60a61de3
shl ecx, 1
sub eax, ecx
add al, dl
add al, 0x38
mov byte [ebx + 3], al
mov eax, dword [esi + 0x218]
mov al, byte [eax]
mov byte [esi + 0x170], al
mov eax, dword [esi + 0xc0]
mov byte [eax], 0x82
mov byte [eax + 1], 0x13
mov byte [eax + 2], 0x7b
mov byte [eax + 3], 0x15
mov byte [eax + 4], 0x81
mov byte [eax + 5], 0x17
mov byte [eax + 6], 0x7d
mov byte [eax + 7], 0x19
mov byte [eax + 8], 0x88
mov byte [eax + 9], 0x1b
mov byte [eax + 0xa], 0x8f
mov byte [eax + 0xb], 0x1d
mov byte [eax + 0xc], 0x76
mov byte [eax + 0xd], 0x1f
mov byte [eax + 0xe], 0x65
mov byte [eax + 0xf], 1
mov byte [eax + 0x10], 0x6e
mov byte [eax + 0x11], 3
mov byte [eax + 0x12], 0x68
mov byte [eax + 0x13], 5
mov byte [eax + 0x14], 0x26
mov byte [eax + 0x15], 7
mov byte [eax + 0x16], 0x25
mov byte [eax + 0x17], 9
mov byte [eax + 0x18], 0x6f
mov byte [eax + 0x19], 0xb
mov byte [eax + 0x1a], 0x94
mov byte [eax + 0x1b], 0xd
mov byte [eax + 0x1c], 0x6b
mov byte [eax + 0x1d], 0xf
mov byte [eax + 0x1e], 0x53
mov byte [eax + 0x1f], 0x31
mov byte [eax + 0x20], 0x12
mov byte [eax + 0x21], 0x33
mov byte [eax + 0x22], 0x56
mov byte [eax + 0x23], 0x35
mov byte [eax + 0x24], 0xaf
mov byte [eax + 0x25], 0x37
mov byte [eax + 0x26], 0xa8
mov byte [eax + 0x27], 0x39
mov byte [eax + 0x28], 0x5b
mov byte [eax + 0x29], 0x3b
mov byte [eax + 0x2a], 0xaf
mov byte [eax + 0x2b], 0x3d
mov byte [eax + 0x2c], 0xad
mov byte [eax + 0x2d], 0x3f
mov byte [eax + 0x2e], 0
mov byte [eax + 0x2f], 0x21
mov byte [eax + 0x30], 0xf
mov byte [eax + 0x31], 0x23
mov byte [eax + 0x32], 0x42
mov byte [eax + 0x33], 0x25
mov byte [eax + 0x34], 6
mov byte [eax + 0x35], 0x27
mov byte [eax + 0x36], 0xa
mov byte [eax + 0x37], 0x29
mov byte [eax + 0x38], 0x2a
mov byte [eax + 0x39], 0x2b
xor eax, eax
cmp eax, 0x3a
jae 0x9d3971
mov edi, dword [esi + 0xc0]
mov cl, byte [edi + eax]
mov dl, al
add dl, 2
xor dl, cl
add dl, 0xf0
mov byte [edi + eax], dl
mov edi, dword [esi + 4]
add eax, 1
jmp 0x9d394e
sub esp, 8
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esi + 0xc0]
mov dword [esp + 4], eax
call fcn.009caa40
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.009caa40
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.009caa40
add esp, 8
mov eax, 2
mov edx, dword [esi + 8]
mov dword [esi + 0x44], eax
xor eax, eax
jmp 0x9d39b3
cmp eax, 0
mov eax, dword [esi + 0x60]
je 0x9d3bd2
jmp 0x9d42ac
cmp edi, 1
sete al
cmp dword [esi + 0x44], 2
sete cl
and al, cl
mov dword [esi + 0x18], 0
test al, 1
jne 0x9d39e8
xor edi, edi
mov edx, dword [esi + 8]
jmp 0x9d3bd2
mov eax, dword [esi + 0x40]
sub esp, 4
mov dword [esp], eax
call fcn.009d42d0
add esp, 4
mov edi, eax
sub edi, 0xfa64c24b
add edi, 1
add edi, 0xfa64c24b
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x9d3a22
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.009c8f10
add esp, 4
mov edx, dword [esi + 0x40]
xor ecx, ecx
sub esp, 0x10
mov dword [esi + 0x200], eax
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.009cb6c0
add esp, 0x10
mov eax, dword [esi + 0x1bc]
add eax, 0x18
sub eax, 0x38a18f65
add eax, 1
add eax, 0x38a18f65
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x9d3a85
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.009c8f10
add esp, 4
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x214]
mov al, byte [eax]
mov byte [esi + 0x174], al
mov eax, dword [esi + 0xbc]
mov byte [eax], 0x10
mov byte [eax + 1], 0x61
mov byte [eax + 2], 0xd
mov byte [eax + 3], 0x63
mov byte [eax + 4], 0x13
mov byte [eax + 5], 0x65
mov byte [eax + 6], 3
mov byte [eax + 7], 0x67
mov byte [eax + 8], 0x1a
mov byte [eax + 9], 0x69
mov byte [eax + 0xa], 0x19
mov byte [eax + 0xb], 0x6b
mov byte [eax + 0xc], 4
mov byte [eax + 0xd], 0x6d
mov byte [eax + 0xe], 0xb
mov byte [eax + 0xf], 0x6f
mov byte [eax + 0x10], 0x1c
mov byte [eax + 0x11], 0x71
mov byte [eax + 0x12], 0x1e
mov byte [eax + 0x13], 0x73
mov byte [eax + 0x14], 0x54
mov byte [eax + 0x15], 0x75
mov byte [eax + 0x16], 0x5b
mov byte [eax + 0x17], 0x77
mov byte [eax + 0x18], 0x1d
mov byte [eax + 0x19], 0x79
mov byte [eax + 0x1a], 2
mov byte [eax + 0x1b], 0x7b
mov byte [eax + 0x1c], 0x19
mov byte [eax + 0x1d], 0x7d
mov byte [eax + 0x1e], 0x1d
mov byte [eax + 0x1f], 0x7f
mov byte [eax + 0x20], 0xa0
mov byte [eax + 0x21], 0x81
mov byte [eax + 0x22], 0xe0
mov byte [eax + 0x23], 0x83
mov byte [eax + 0x24], 0xfd
mov byte [eax + 0x25], 0x85
mov byte [eax + 0x26], 0xf6
mov byte [eax + 0x27], 0x87
mov byte [eax + 0x28], 0xe9
mov byte [eax + 0x29], 0x89
mov byte [eax + 0x2a], 0xf9
mov byte [eax + 0x2b], 0x8b
mov byte [eax + 0x2c], 0xff
mov byte [eax + 0x2d], 0x8d
mov byte [eax + 0x2e], 0xae
mov byte [eax + 0x2f], 0x8f
mov byte [eax + 0x30], 0x90
mov byte [eax + 0x31], 0x91
xor eax, eax
cmp eax, 0x32
jae 0x9d3b90
mov edi, dword [esi + 0xbc]
mov cl, byte [edi + eax]
mov dl, al
add dl, 0x60
xor dl, cl
mov byte [edi + eax], dl
add eax, 1
jmp 0x9d3b73
sub esp, 8
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esi + 0xbc]
mov dword [esp + 4], eax
call fcn.009caa40
mov dword [esp], eax
mov edi, dword [esi + 0x200]
mov dword [esp + 4], edi
call fcn.009caa40
add esp, 8
sub esp, 4
mov dword [esp], edi
call fcn.009c8f20
add esp, 4
mov edx, dword [esi + 8]
xor edi, edi
jmp 0x9d3bd2
mov ecx, dword [esi + 0x44]
test ecx, ecx
mov dword [esi + 4], edi
je 0x9d3bf9
jmp 0x9d3bde
mov eax, ecx
sub eax, 1
je 0x9d3d92
jmp 0x9d3beb
sub ecx, 2
je 0x9d403b
jmp 0x9d4261
mov al, byte [esi + 0x53]
test al, 1
jne 0x9d3c05
jmp 0x9d3d92
xor eax, eax
sub esp, 0xc
mov edi, dword [esi + 0x1b4]
mov dword [esp], edi
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
call fcn.009c90a0
add esp, 0xc
mov dword [edi], 0x44
mov edi, dword [esi + 4]
call fcn.009d4770
mov eax, dword [0x78398c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.009f9550
add esp, 8
test eax, eax
setne cl
xor ecx, ecx
sub esp, 0x28
mov dword [esp], edi
mov ecx, dword [esi + 0x18]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esi + 0x1b4]
mov dword [esp + 0x20], ecx
mov ecx, dword [esi + 0x1b0]
mov dword [esp + 0x24], ecx
call eax
cmp eax, 0
setne al
mov edx, dword [esi + 8]
test al, 1
jne 0x9d3cc0
jmp 0x9d3d8d
mov eax, dword [esi + 0x1b0]
mov eax, dword [eax]
mov dword [esi + 0x1ec], eax
mov al, byte [esi + 0x120]
mov byte [esi + 0x188], al
mov byte [esi + 0x34], 0x1e
mov byte [esi + 0x35], 0x1d
mov byte [esi + 0x36], 0x1c
mov byte [esi + 0x37], 0x1b
mov al, byte [esi + 0x34]
xor al, 0xd9
add al, 0x38
mov byte [esi + 0x34], al
mov al, byte [esi + 0x35]
xor al, 0xda
add al, 0x38
mov byte [esi + 0x35], al
mov al, byte [esi + 0x36]
xor al, 0xdb
add al, 0x38
mov byte [esi + 0x36], al
mov al, byte [esi + 0x37]
xor al, 0xdc
add al, 0x38
mov byte [esi + 0x37], al
mov ecx, dword [esi + 0x34]
xor edi, edi
cmp edi, dword [0x784998]
jb 0x9d3d21
jmp 0x9d3d85
mov eax, dword [0x78499c]
cmp dword [eax + edi*8], 0xb430e561
sete dl
mov byte [esi + 0x4c], dl
test dl, 1
jne 0x9d3d3a
jmp 0x9d3d78
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x9d3d78
mov dword [esi + 0x1dc], ecx
mov ecx, dword [0x7849a0]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esi + 0x1ec]
mov dword [esp + 0xc], eax
call fcn.009f7df0
mov ecx, dword [esi + 0x1dc]
add esp, 0x10
test byte [esi + 0x4c], 1
je 0x9d3d80
jmp 0x9d3d85
add edi, 1
jmp 0x9d3d17
mov edx, dword [esi + 8]
mov edi, dword [esi + 4]
jmp 0x9d3d8d
jmp 0x9d4261
call fcn.009d4770
mov eax, dword [0x78398c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.009f9550
add esp, 8
mov edi, eax
test edi, edi
setne al
call fcn.009d4770
call fcn.009d4770
mov eax, dword [esi + 0x40]
xor ecx, ecx
lea ecx, [0x75f8e0]
sub esp, 0x18
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call edi
mov dword [esi + 0x1a8], eax
cmp eax, 0
setne cl
test cl, 1
mov edx, dword [esi + 8]
mov edi, dword [esi + 4]
jne 0x9d3e16
jmp 0x9d4036
mov eax, dword [esi + 0x210]
mov cl, byte [eax]
mov byte [esi + 0x178], cl
mov eax, dword [esi + 0xb8]
mov byte [eax], 0xb2
mov byte [eax + 1], 0x69
mov byte [eax + 2], 0xe8
mov byte [eax + 3], 0x49
mov byte [eax + 4], 0xa9
mov byte [eax + 5], 0xa8
mov byte [eax + 6], 0xa7
mov byte [eax + 7], 0xa6
xor ecx, ecx
cmp ecx, 8
jae 0x9d3e8c
mov eax, dword [esi + 0xb8]
movzx ebx, byte [eax + ecx]
mov edi, 0x5bc2cc5d
sub edi, ecx
or edi, ebx
mov edx, 0x5d
sub edx, ecx
and edx, ebx
xor edi, 0xffffffff
or edx, edi
mov edi, edx
and edi, 0x11
xor edi, 0x11
and edx, 0xee
sub edx, edi
add dl, 1
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x9d3e4b
mov eax, dword [esi + 0xb8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov edi, dword [esi + 0x1ac]
mov dword [edi + 4], edx
mov dword [edi], ecx
mov cl, byte [esi + 0x17c]
mov byte [esi + 0x180], cl
mov byte [esi + 0x3c], 0x1e
mov byte [esi + 0x3d], 0x1d
mov byte [esi + 0x3e], 0x1c
mov byte [esi + 0x3f], 0x1b
mov cl, byte [esi + 0x3c]
xor cl, 0xd9
add cl, 0x38
mov byte [esi + 0x3c], cl
mov cl, byte [esi + 0x3d]
xor cl, 0xda
add cl, 0x38
mov byte [esi + 0x3d], cl
mov cl, byte [esi + 0x3e]
xor cl, 0xdb
add cl, 0x38
mov byte [esi + 0x3e], cl
mov cl, byte [esi + 0x3f]
xor cl, 0xdc
add cl, 0x38
mov byte [esi + 0x3f], cl
mov eax, dword [esi + 0x3c]
xor edi, edi
cmp edi, dword [0x784998]
jb 0x9d3efd
jmp 0x9d3f70
mov ecx, dword [0x78499c]
cmp dword [ecx + edi*8], 0xa67d73aa
sete dl
test dl, 1
jne 0x9d3f14
jmp 0x9d3f64
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x9d3f64
mov byte [esi + 0x50], dl
mov edx, dword [0x7849a0]
xor ebx, ebx
sub esp, 0x18
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
mov ebx, eax
mov eax, dword [esi + 0x1a8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov ecx, dword [esi + 0x1ac]
mov dword [esp + 0x14], ecx
call fcn.009f7df0
mov dl, byte [esi + 0x50]
add esp, 0x18
mov eax, ebx
test dl, 1
je 0x9d3f6b
jmp 0x9d3f70
add edi, 1
jmp 0x9d3ef3
mov cl, byte [esi + 0x11c]
mov byte [esi + 0x18c], cl
mov byte [esi + 0x30], 0x1e
mov byte [esi + 0x31], 0x1d
mov byte [esi + 0x32], 0x1c
mov byte [esi + 0x33], 0x1b
mov cl, byte [esi + 0x30]
xor cl, 0xd9
add cl, 0x38
mov byte [esi + 0x30], cl
mov cl, byte [esi + 0x31]
xor cl, 0xda
add cl, 0x38
mov byte [esi + 0x31], cl
mov cl, byte [esi + 0x32]
xor cl, 0xdb
add cl, 0x38
mov byte [esi + 0x32], cl
mov cl, byte [esi + 0x33]
xor cl, 0xdc
add cl, 0x38
mov byte [esi + 0x33], cl
mov eax, dword [esi + 0x30]
xor edi, edi
cmp edi, dword [0x784998]
jb 0x9d3fcb
jmp 0x9d4030
mov ecx, dword [0x78499c]
cmp dword [ecx + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x9d3fe2
jmp 0x9d4024
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x9d4024
mov bl, dl
mov edx, dword [0x7849a0]
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov dword [esi + 0x1c8], eax
mov eax, dword [esi + 0x1a8]
mov dword [esp + 0xc], eax
call fcn.009f7df0
mov dl, bl
add esp, 0x10
mov eax, dword [esi + 0x1c8]
test dl, 1
je 0x9d402b
jmp 0x9d4030
add edi, 1
jmp 0x9d3fc1
mov edx, dword [esi + 8]
mov edi, dword [esi + 4]
jmp 0x9d4261
xor eax, eax
mov ecx, 0x11
mov edx, dword [esi + 0x20c]
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [edx], 0x44
mov edi, edx
mov eax, dword [0x78398c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.009f9550
add esp, 8
test eax, eax
setne cl
xor ecx, ecx
sub esp, 0x28
mov dword [esp], 0
mov ecx, dword [esi + 0x18]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x8000000
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], edi
mov ecx, dword [esi + 0xb4]
mov dword [esp + 0x24], ecx
call eax
cmp eax, 0
je 0x9d425b
mov eax, dword [esi + 0xb4]
mov eax, dword [eax + 4]
mov dword [esi + 0x1f4], eax
mov al, byte [esi + 0x118]
mov byte [esi + 0x190], al
mov byte [esi + 0x2c], 0x1e
mov byte [esi + 0x2d], 0x1d
mov byte [esi + 0x2e], 0x1c
mov byte [esi + 0x2f], 0x1b
mov al, byte [esi + 0x2c]
xor al, 0xd9
add al, 0x38
mov byte [esi + 0x2c], al
mov al, byte [esi + 0x2d]
xor al, 0xda
add al, 0x38
mov byte [esi + 0x2d], al
mov al, byte [esi + 0x2e]
xor al, 0xdb
add al, 0x38
mov byte [esi + 0x2e], al
mov al, byte [esi + 0x2f]
xor al, 0xdc
add al, 0x38
mov byte [esi + 0x2f], al
mov ecx, dword [esi + 0x2c]
xor edi, edi
cmp edi, dword [0x784998]
jb 0x9d4132
jmp 0x9d4196
mov eax, dword [0x78499c]
cmp dword [eax + edi*8], 0xb430e561
sete dl
mov byte [esi + 0x4e], dl
test dl, 1
jne 0x9d414b
jmp 0x9d4189
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x9d4189
mov dword [esi + 0x1e4], ecx
mov ecx, dword [0x7849a0]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esi + 0x1f4]
mov dword [esp + 0xc], eax
call fcn.009f7df0
mov ecx, dword [esi + 0x1e4]
add esp, 0x10
test byte [esi + 0x4e], 1
je 0x9d4191
jmp 0x9d4196
add edi, 1
jmp 0x9d4128
mov eax, dword [esi + 0xb4]
mov eax, dword [eax]
mov dword [esi + 0x1f0], eax
mov al, byte [esi + 0x114]
mov byte [esi + 0x194], al
mov byte [esi + 0x28], 0x1e
mov byte [esi + 0x29], 0x1d
mov byte [esi + 0x2a], 0x1c
mov byte [esi + 0x2b], 0x1b
mov al, byte [esi + 0x28]
xor al, 0xd9
add al, 0x38
mov byte [esi + 0x28], al
mov al, byte [esi + 0x29]
xor al, 0xda
add al, 0x38
mov byte [esi + 0x29], al
mov al, byte [esi + 0x2a]
xor al, 0xdb
add al, 0x38
mov byte [esi + 0x2a], al
mov al, byte [esi + 0x2b]
xor al, 0xdc
add al, 0x38
mov byte [esi + 0x2b], al
mov ecx, dword [esi + 0x28]
xor edi, edi
cmp edi, dword [0x784998]
jb 0x9d41f7
jmp 0x9d425b
mov eax, dword [0x78499c]
cmp dword [eax + edi*8], 0xb430e561
sete dl
mov byte [esi + 0x4d], dl
test dl, 1
jne 0x9d4210
jmp 0x9d424e
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x9d424e
mov dword [esi + 0x1e0], ecx
mov ecx, dword [0x7849a0]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esi + 0x1f0]
mov dword [esp + 0xc], eax
call fcn.009f7df0
mov ecx, dword [esi + 0x1e0]
add esp, 0x10
test byte [esi + 0x4d], 1
je 0x9d4256
jmp 0x9d425b
add edi, 1
jmp 0x9d41ed
mov edx, dword [esi + 8]
mov edi, dword [esi + 4]
mov ebx, edx
mov eax, dword [esi + 0x40]
sub esp, 4
mov dword [esp], eax
call fcn.009f6a20
add esp, 4
cmp edi, 0
je 0x9d4287
sub esp, 4
mov dword [esp], edi
call fcn.009c8f20
add esp, 4
cmp dword [esi + 0x18], 0
sete al
test al, 1
jne 0x9d42a5
jmp 0x9d4294
sub esp, 4
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.009c8f20
add esp, 4
mov eax, dword [esi + 0x60]
mov edx, ebx
jmp 0x9d42ac
add eax, 1
mov ebx, eax
jmp 0x9d2513
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret