Function at 0x10039030
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
mov dword [ebp - 0x118], edi
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x120], ebx
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 4]
mov dword [ebp - 0x130], 0
xor eax, eax
mov edi, 1
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0xa0], eax
mov ebx, edi
mov edi, eax
jmp 0x10039086
mov edi, dword [ebp - 0x18]
movzx edx, byte [esi + 0x12d]
lea eax, [ebp + 0x10]
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x2c], ebx
and edx, 4
push ecx
shr edx, 2
mov dword [ebp - 0x20], edx
lea edx, [ebp - 0xb0]
push edx
push eax
lea edx, [ebp + 0xc]
push edx
call fcn.10013d90
mov dword [ebp - 0xc], eax
add esp, 0x10
mov edx, eax
test edx, edx
jne 0x1003ab06
mov ecx, dword [ebp - 0xa8]
cmp ecx, 2
je 0x1003abce
cmp ecx, 1
je 0x1003aae0
movzx edx, byte [esi + 0x12d]
mov dword [ebp - 0x34], edx
test dl, 8
je 0x10039146
movsx edx, byte [esi + 0x120]
test edx, edx
jne 0x10039146
mov edx, dword [ebp - 0xa4]
cmp edx, 1
jle 0x10039146
cmp ecx, 5
jl 0x10039134
cmp ecx, 0x11
jle 0x10039139
cmp ecx, 0x19
jl 0x1003912d
cmp ecx, 0x1f
jle 0x10039139
cmp ecx, 0x32
jl 0x10039121
cmp ecx, 0x34
jle 0x10039139
jmp 0x10039146
cmp ecx, 0x28
jl 0x10039146
cmp ecx, 0x30
jle 0x10039139
jmp 0x10039146
cmp ecx, 0x32
jge 0x10039139
jmp 0x10039146
cmp ecx, 0x19
jl 0x10039146
mov edx, 1
mov dword [ebp - 0xa0], edx
jmp 0x1003914e
xor edx, edx
mov dword [ebp - 0xa0], edx
mov edx, dword [ebp - 0x110]
cmp edx, 7
jl 0x100392ac
cmp edx, 8
jg 0x100392ac
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x90], edx
test edx, edx
je 0x10039189
mov eax, dword [ebp - 0xac]
cdq
mov ebx, dword [ebp - 0x90]
idiv ebx
mov ebx, eax
jmp 0x1003918b
xor ebx, ebx
test ebx, ebx
jne 0x100391b5
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x100391a5
mov edi, 1
jmp 0x1003944f
mov edi, 1
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0xc]
jmp 0x10039461
cmp ecx, 0x34
je 0x100391c4
cmp ecx, 0x1c
jl 0x100391d1
cmp ecx, 0x2c
jg 0x100391d1
mov edx, 1
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x1c], edx
jmp 0x100391d6
xor edx, edx
mov dword [ebp - 0x30], edx
mov edx, dword [ebp - 0x10c]
test edx, edx
jle 0x10039207
mov ecx, dword [ebp - 0x90]
cmp ecx, dword [ebp - 0xfc]
jne 0x1003920f
mov ecx, dword [ebp - 0x100]
cmp ecx, dword [ebp - 0x104]
jg 0x1003920f
cmp ecx, 1
je 0x100395b1
jmp 0x1003920f
test edx, edx
jle 0x1003968d
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x8c], esi
xor eax, eax
xor ecx, ecx
mov esi, dword [ebp + ecx - 0x100]
mov ebx, dword [ebp + ecx - 0xfc]
mov dword [ebp + eax*4 - 0x88], esi
add ecx, 0xc
mov dword [ebp + eax*4 - 0x6c], ebx
mov dword [ebp + eax*4 - 0x50], esi
add eax, 1
cmp eax, edx
jl 0x1003921c
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
test edx, edx
jle 0x1003968d
mov dword [ebp - 0x8c], esi
xor ecx, ecx
xor eax, eax
mov esi, dword [ebp + ecx*4 - 0x50]
sub esi, dword [ebp + ecx*4 - 0x88]
imul esi, dword [ebp + ecx*4 - 0x6c]
add ecx, 1
add eax, esi
cmp ecx, edx
jl 0x1003925e
mov esi, dword [ebp - 0x8c]
add eax, dword [ebp - 0x108]
mov dword [ebp - 0xb0], eax
lea ecx, [ebp - 0x50]
lea edx, [ebp - 0x110]
mov dword [ebp - 0x2c], ebx
push edx
push ecx
push 0
call fcn.1002470c
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0xc]
add esp, 0xc
jmp 0x1003953e
cmp edx, 6
je 0x100392ba
cmp edx, 5
jne 0x100393c8
mov edx, dword [ebp - 0xa4]
test edx, edx
je 0x100392d2
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0x90], edx
jmp 0x100392da
xor edx, edx
mov dword [ebp - 0x90], edx
test edx, edx
jne 0x1003930d
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x100392f9
mov ebx, 1
mov edi, 1
jmp 0x1003944f
mov ebx, 1
mov edi, 1
mov dword [ebp - 0x18], edi
mov edi, eax
jmp 0x10039461
mov edx, dword [ebp - 0x34]
test dl, 4
jne 0x1003932a
movzx edx, byte [esi + 0x12f]
test dl, 4
jne 0x1003944a
jmp 0x10039457
lea edx, [ebp - 0xb0]
push esi
push edx
call fcn.1002405c
add esp, 8
test eax, eax
je 0x10039398
mov edx, dword [ebp - 0xa0]
test edx, edx
jne 0x10039378
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x90], edx
test edx, edx
je 0x1003936b
mov eax, dword [ebp - 0xac]
cdq
mov ecx, dword [ebp - 0x90]
idiv ecx
mov ebx, eax
jmp 0x1003936d
xor ebx, ebx
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0xc]
jmp 0x1003953e
movzx edx, byte [esi + 0x12f]
test dl, 4
jne 0x1003944a
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0xc]
mov ebx, 1
jmp 0x10039461
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x100393b3
mov ebx, 1
xor ecx, ecx
mov dword [ebp - 0x20], ecx
jmp 0x1003944f
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0xc]
mov ebx, 1
xor ecx, ecx
mov dword [ebp - 0x20], ecx
jmp 0x10039461
cmp ecx, 0x34
je 0x100393d7
cmp ecx, 0x1c
jl 0x10039412
cmp ecx, 0x2c
jg 0x10039412
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x90], edx
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x100393fe
mov ebx, 2
mov ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x1003944f
mov dword [ebp - 0x18], edi
mov edi, eax
mov ebx, 2
mov ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x10039461
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0x90], edx
test edx, edx
jne 0x1003943e
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x100392f9
mov ebx, 1
mov edi, 1
jmp 0x1003944f
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x10039457
mov ebx, 1
mov dword [ebp - 0x18], edi
jmp 0x1003954e
mov dword [ebp - 0x18], edi
mov edi, eax
mov ebx, 1
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jne 0x1003a716
mov edx, dword [ebp - 0x18]
test edx, edx
je 0x10039899
cmp ebx, 1
jle 0x10039083
mov edx, dword [ebp - 0x110]
cmp edx, 7
je 0x10039494
cmp edx, 8
jne 0x10039520
mov edx, dword [ebp - 0x1c]
test edx, edx
je 0x100394b4
mov edx, dword [ebp - 0xa4]
add dword [ebp - 0xb0], edx
add ebx, 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
jmp 0x1003953e
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
test edx, edx
je 0x100394c3
mov ecx, 1
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x10c]
test ecx, ecx
jle 0x10039694
mov dword [ebp - 0x8c], esi
xor edx, edx
xor eax, eax
mov esi, dword [ebp + edx*4 - 0x50]
sub esi, dword [ebp + edx*4 - 0x88]
imul esi, dword [ebp + edx*4 - 0x6c]
add edx, 1
add eax, esi
cmp edx, ecx
jl 0x100394de
mov esi, dword [ebp - 0x8c]
add eax, dword [ebp - 0x108]
mov dword [ebp - 0xb0], eax
lea ecx, [ebp - 0x50]
lea edx, [ebp - 0x110]
push edx
push ecx
push 0
call fcn.1002470c
add esp, 0xc
jmp 0x1003953b
mov edx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x1c]
add dword [ebp - 0xb0], edx
test ecx, ecx
je 0x10039538
mov ecx, 0
mov dword [ebp - 0x1c], ecx
add ebx, 0xffffffff
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x10039461
and edx, 0xfffffffb
mov byte [esi + 0x12f], dl
cmp ebx, 1
je 0x10039864
push esi
call fcn.1001cb04
pop ecx
mov edi, eax
test edi, edi
jne 0x1003979a
mov edx, dword [esi + 0x3c]
movsx ecx, byte [esi + 0x11c]
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
mov dword [esi + 0x48], edx
and byte [esi + 0x12e], 0x7f
cmp ecx, 3
je 0x1003969b
movzx edx, byte [esi + 0x12f]
and edx, 0xfffffff7
mov byte [esi + 0x12f], dl
jmp 0x10039461
cmp edx, 1
jg 0x10039625
mov edx, dword [ebp - 0x34]
test dl, 4
je 0x100395f2
lea edx, [ebp - 0xb0]
push esi
mov dword [ebp - 0x2c], ebx
push edx
call fcn.1002405c
add esp, 8
test eax, eax
jne 0x100395e8
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0x90], edx
xor ecx, ecx
mov dword [ebp - 0x20], ecx
jmp 0x100395fe
mov edx, dword [ebp - 0xa0]
test edx, edx
je 0x1003961a
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0x90], edx
mov edx, dword [ebp - 0x108]
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0x18], edi
mov ebx, 1
mov edi, dword [ebp - 0xc]
jmp 0x1003953e
mov edx, dword [ebp - 0x10c]
jmp 0x10039207
mov dword [ebp - 0x8c], esi
mov eax, 1
mov ecx, 0xc
mov esi, dword [ebp + ecx - 0x100]
cmp esi, 1
je 0x1003964c
mov esi, dword [ebp - 0x8c]
jmp 0x10039207
cmp esi, dword [ebp + ecx - 0x104]
jg 0x10039641
mov esi, dword [ebp + ecx - 0x110]
imul esi, dword [ebp + ecx - 0x108]
cmp esi, dword [ebp + ecx - 0xfc]
je 0x10039678
mov esi, dword [ebp - 0x8c]
jmp 0x10039207
add ecx, 0xc
add eax, 1
cmp eax, edx
jl 0x10039635
mov esi, dword [ebp - 0x8c]
jmp 0x100395b6
xor eax, eax
jmp 0x1003927d
xor eax, eax
jmp 0x100394fd
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
shl ecx, 8
or eax, ecx
movsx ecx, ax
cmp ecx, 3
je 0x100396b4
cmp ecx, 1
jne 0x100396bf
add edx, 2
mov dword [esi + 0x3c], edx
jmp 0x1003959c
mov edx, dword [esi + 0x18]
test edx, edx
je 0x10039772
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x1003970a
mov eax, 0x23
mov dword [edx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [esi + 0x64]
test eax, eax
je 0x100396ef
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x64], edx
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov eax, 0x23
mov esp, ebp
pop ebp
ret
movzx ecx, byte [esi + 0x12b]
movzx ebx, byte [esi + 0x12c]
mov edx, ecx
and edx, 0x40
mov edi, 2
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
jne 0x10039736
mov edi, 0
test bl, 1
mov edx, 4
jne 0x10039745
mov edx, 0
or eax, edi
or eax, edx
mov edx, 0x23
push edx
push edx
push eax
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
mov eax, 0x23
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x18]
mov eax, edi
test ecx, ecx
je 0x10039841
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x100397de
mov dword [ecx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [esi + 0x64]
test edx, edx
je 0x100397c8
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x64], ecx
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [esi + 0x12b]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
movzx ecx, byte [esi + 0x12c]
test ebx, 0x80
mov ebx, 2
jne 0x1003980c
mov ebx, 0
test cl, 1
mov ecx, 4
jne 0x1003981b
mov ecx, 0
or edx, ebx
or edx, ecx
push edx
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 1
jne 0x10039560
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x90]
mov dword [esi + 0x80], eax
mov dword [esi + 0xfc], ecx
or edx, 8
mov byte [esi + 0x12f], dl
jmp 0x10039560
mov edx, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x94], edx
mov dword [ebp - 4], edx
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x9c], edx
lea edx, [edx - 1]
cmp edx, 0x20
mov dword [ebp - 0x24], edx
jae 0x100398fc
mov ecx, edx
mov edx, 1
shl edx, cl
test edx, 0x808a
je 0x100398fc
mov edx, dword [ebp - 0x94]
mov eax, dword [esi + 0x3c]
and edx, ecx
and ecx, eax
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x24], ecx
mov edx, 1
mov dword [ebp - 0x28], edx
jmp 0x1003991b
mov edx, dword [ebp - 0x94]
mov eax, dword [esi + 0x3c]
and edx, 0xf
mov dword [ebp - 0x98], edx
mov ecx, eax
and ecx, 0xf
mov dword [ebp - 0x24], ecx
xor edx, edx
mov dword [ebp - 0x28], edx
movzx edx, byte [esi + 0x12f]
test dl, 0x10
jne 0x100399ee
mov edx, dword [esi + 0x100]
cmp edx, 7
je 0x1003a326
mov ecx, dword [ebp - 0x90]
mov edx, dword [esi + 0x44]
mov dword [ebp - 0x34], edx
sub edx, eax
cmp ecx, edx
jle 0x10039dc2
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x34]
sub ebx, eax
push ebx
push eax
push edx
call fcn.1007f4d4
add esp, 0xc
add dword [esi + 0x3c], ebx
add dword [ebp - 4], ebx
sub dword [ebp - 8], ebx
movsx edx, byte [esi + 0x11c]
cmp edx, 3
je 0x10039cba
mov eax, dword [esi + 0x100]
cmp eax, 0xb
jne 0x10039998
movzx eax, byte [esi + 0x132]
test al, 8
jne 0x100399a1
cmp edx, 5
jne 0x10039bdf
push esi
call fcn.1001cb04
mov dword [ebp - 0xc], eax
add esp, 4
test eax, eax
jne 0x10039b17
mov eax, dword [esi + 0x3c]
movsx edx, byte [esi + 0x11c]
mov dword [esi + 0x48], eax
cmp edx, 3
jne 0x10039aaf
mov ebx, dword [esi + 0x44]
add eax, 2
mov dword [esi + 0x3c], eax
mov edx, dword [ebp - 4]
mov edi, ebx
sub edi, eax
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x10], ecx
cmp ecx, edi
jg 0x1003995c
jmp 0x10039ac7
mov edx, dword [ebp - 0xa0]
test edx, edx
je 0x10039a72
mov edx, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x94]
lea eax, [edx + ecx]
mov edx, dword [ebp - 0x98]
test dl, 3
jne 0x10039a63
mov edx, dword [ebp - 0x9c]
cmp edx, 4
je 0x10039a54
cmp edx, 8
jne 0x10039a31
mov edx, ecx
cmp edx, eax
jb 0x1003a4b0
jmp 0x10039477
cmp edx, 0x10
jne 0x10039a45
mov edx, ecx
cmp edx, eax
jb 0x1003a531
jmp 0x10039477
mov edx, ecx
cmp edx, eax
jb 0x1003a610
jmp 0x10039477
mov edx, ecx
cmp edx, eax
jb 0x1003a649
jmp 0x10039477
mov edx, ecx
cmp edx, eax
jb 0x1003a69c
jmp 0x10039477
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x10039477
mov eax, dword [ebp - 0x90]
lea edx, [ebp - 0xb0]
push eax
push esi
push edx
call fcn.10024574
add esp, 0xc
mov edi, eax
test edi, edi
je 0x10039477
push 0
push 0x5f
call fcn.100149ac
add esp, 8
jmp 0x10039477
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov ebx, dword [esi + 0x44]
mov dword [ebp - 0x10], ecx
mov edi, ebx
sub edi, eax
cmp ecx, edi
jg 0x1003995c
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x94], edx
mov edx, ecx
push edx
mov edx, dword [ebp - 0x94]
push eax
push edx
call fcn.1007f4d4
add esp, 0xc
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xa0]
add dword [esi + 0x3c], edx
test ecx, ecx
je 0x10039a72
mov edx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x94], ecx
jmp 0x100399f8
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x10039bbc
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x10039b59
mov dword [ecx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [esi + 0x64]
test edx, edx
je 0x10039b43
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x64], ecx
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [esi + 0x12b]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
movzx ecx, byte [esi + 0x12c]
test ebx, 0x80
mov ebx, 2
jne 0x10039b87
mov ebx, 0
test cl, 1
mov ecx, 4
jne 0x10039b96
mov ecx, 0
or edx, ebx
or edx, ecx
push edx
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x18]
test edx, edx
je 0x10039c92
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x10039c2a
mov eax, 0x43
mov dword [edx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [esi + 0x64]
test eax, eax
je 0x10039c0f
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x64], edx
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov eax, 0x43
mov esp, ebp
pop ebp
ret
movzx ecx, byte [esi + 0x12b]
movzx ebx, byte [esi + 0x12c]
mov edx, ecx
and edx, 0x40
mov edi, 2
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
jne 0x10039c56
mov edi, 0
test bl, 1
mov edx, 4
jne 0x10039c65
mov edx, 0
or eax, edi
or eax, edx
mov edx, 0x43
push edx
push edx
push eax
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
mov eax, 0x43
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x48]
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
shl edx, 8
or ecx, edx
movsx ecx, cx
cmp ecx, 0x20
jae 0x100399a1
mov eax, 1
shl eax, cl
test eax, 0x400000c
je 0x100399a1
mov edx, dword [esi + 0x18]
test edx, edx
je 0x10039d9a
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x10039d32
mov eax, 0x43
mov dword [edx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [esi + 0x64]
test eax, eax
je 0x10039d17
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x64], edx
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov eax, 0x43
mov esp, ebp
pop ebp
ret
movzx ecx, byte [esi + 0x12b]
movzx ebx, byte [esi + 0x12c]
mov edx, ecx
and edx, 0x40
mov edi, 2
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
jne 0x10039d5e
mov edi, 0
test bl, 1
mov edx, 4
jne 0x10039d6d
mov edx, 0
or eax, edi
or eax, edx
mov edx, 0x43
push edx
push edx
push eax
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
mov eax, 0x43
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x94]
lea edx, [edx + ecx]
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0xa0]
test edx, edx
je 0x1003a142
mov edx, dword [ebp - 0x98]
test dl, 3
jne 0x1003a094
mov edx, dword [ebp - 0x24]
test dl, 3
jne 0x1003a094
mov edx, dword [ebp - 0x9c]
cmp edx, 4
je 0x1003a020
cmp edx, 8
jne 0x10039ead
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x94]
cmp edx, ecx
jae 0x1003a311
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x8c], esi
mov esi, edx
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
mov edx, ecx
shr edx, 0x18
mov edi, ecx
and edi, 0xff0000
shr edi, 8
or edx, edi
mov edi, ecx
shl ecx, 0x18
and edi, 0xff00
shl edi, 8
or edx, edi
or edx, ecx
mov dword [esi], edx
mov ecx, ebx
shr ecx, 0x18
mov edx, ebx
and edx, 0xff0000
shr edx, 8
or ecx, edx
mov edx, ebx
and edx, 0xff00
shl edx, 8
or ecx, edx
shl ebx, 0x18
or ecx, ebx
mov edx, dword [ebp - 0x9c]
mov dword [esi + 4], ecx
add esi, edx
add eax, edx
mov edx, dword [ebp - 0x34]
cmp esi, edx
jb 0x10039e2e
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x3c]
xor ecx, ecx
mov dword [ebp - 0x10], edx
jmp 0x1003a2f0
cmp edx, 0x10
jne 0x10039fbe
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x94]
cmp edx, ecx
jae 0x1003a311
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x8c], esi
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov dword [ebp - 0x134], eax
mov eax, edi
shr eax, 0x18
mov edx, edi
and edx, 0xff0000
shr edx, 8
or eax, edx
mov edx, edi
and edx, 0xff00
shl edx, 8
or eax, edx
shl edi, 0x18
or eax, edi
mov edx, dword [ebp - 0x94]
mov dword [edx], eax
mov eax, esi
shr eax, 0x18
mov edi, esi
and edi, 0xff0000
shr edi, 8
or eax, edi
mov edi, esi
shl esi, 0x18
and edi, 0xff00
shl edi, 8
or eax, edi
or eax, esi
mov dword [edx + 4], eax
mov esi, ecx
shr esi, 0x18
mov eax, ecx
and eax, 0xff0000
shr eax, 8
or esi, eax
mov eax, ecx
and eax, 0xff00
shl eax, 8
or esi, eax
shl ecx, 0x18
or esi, ecx
mov dword [edx + 8], esi
mov ecx, ebx
shr ecx, 0x18
mov eax, ebx
and eax, 0xff0000
shr eax, 8
or ecx, eax
mov eax, ebx
shl ebx, 0x18
and eax, 0xff00
shl eax, 8
or ecx, eax
or ecx, ebx
mov eax, dword [ebp - 0x134]
mov dword [edx + 0xc], ecx
mov ecx, dword [ebp - 0x9c]
add edx, ecx
mov dword [ebp - 0x94], edx
add eax, ecx
mov ecx, dword [ebp - 0x34]
cmp edx, ecx
jb 0x10039ed3
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x3c]
xor ecx, ecx
mov dword [ebp - 0x10], edx
jmp 0x1003a2f0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x94]
cmp edx, ecx
jae 0x1003a311
mov ecx, edx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x34]
mov dword [ebp - 0x8c], esi
mov esi, dword [ebp - 0x9c]
movzx edi, word [eax]
mov edx, edi
shr edx, 8
and edi, 0xff
shl edi, 8
or edx, edi
mov word [ecx], dx
add ecx, esi
add eax, esi
cmp ecx, ebx
jb 0x10039fe6
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x3c]
xor ecx, ecx
mov dword [ebp - 0x10], edx
jmp 0x1003a2f0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x94]
cmp edx, ecx
jae 0x1003a311
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x2c], ebx
mov ebx, edx
mov dword [ebp - 0x8c], esi
mov esi, dword [ebp - 0x9c]
mov ecx, dword [eax]
mov edx, ecx
shr edx, 0x18
mov edi, ecx
and edi, 0xff0000
shr edi, 8
or edx, edi
mov edi, ecx
and edi, 0xff00
shl edi, 8
or edx, edi
shl ecx, 0x18
or edx, ecx
mov dword [ebx], edx
mov edx, dword [ebp - 0x34]
add ebx, esi
add eax, esi
cmp ebx, edx
jb 0x1003a045
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x3c]
xor ecx, ecx
mov dword [ebp - 0x10], edx
jmp 0x1003a2f0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x94]
cmp edx, ecx
jae 0x1003a311
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0xc], edi
mov ecx, edx
mov dword [ebp - 0x2c], ebx
mov ebx, edx
mov dword [ebp - 0x8c], esi
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x94]
cmp ebx, 1
je 0x1003a315
mov edx, dword [ebp - 0x24]
test edx, edx
jle 0x1003a11b
xor edx, edx
lea esi, [ebx + eax]
mov dword [ebp - 0x28], esi
lea edi, [ebx + ecx]
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x28]
movzx ebx, byte [edx + eax]
sub edi, edx
movzx esi, byte [edi - 1]
xor esi, ebx
xor ebx, esi
mov byte [edx + ecx], bl
movzx ebx, byte [edi - 1]
xor ebx, esi
mov esi, dword [ebp - 0x10]
sub esi, edx
mov byte [esi - 1], bl
add edx, 1
mov ebx, dword [ebp - 0x24]
cmp edx, ebx
jl 0x1003a0e9
mov ebx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x34]
add ecx, ebx
add eax, ebx
cmp ecx, edx
jb 0x1003a0cb
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x3c]
xor ecx, ecx
mov dword [ebp - 0x10], edx
jmp 0x1003a2f0
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x1003a2cf
mov edx, dword [ebp - 0x98]
test dl, 7
jne 0x1003a2cf
mov edx, dword [ebp - 0x24]
test dl, 7
jne 0x1003a2cf
mov edx, dword [ebp - 0x9c]
cmp edx, 4
je 0x1003a285
cmp edx, 8
jne 0x1003a1d4
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x94]
cmp edx, ecx
jae 0x1003a31f
mov dword [ebp - 0xc], edi
mov edi, ecx
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x9c]
mov dword [ebp - 0x8c], esi
mov esi, edx
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esi], edx
mov dword [esi + 4], ecx
add esi, ebx
add eax, ebx
cmp esi, edi
jb 0x1003a1a3
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x3c]
mov ecx, 1
mov dword [ebp - 0x10], edx
jmp 0x1003a2f0
cmp edx, 0x10
jne 0x1003a239
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x94]
cmp edx, ecx
jae 0x1003a31f
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x9c]
mov dword [ebp - 0x8c], esi
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov dword [edx], esi
mov dword [edx + 4], edi
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov dword [edx + 8], esi
mov dword [edx + 0xc], edi
add edx, ebx
add eax, ebx
cmp edx, ecx
jb 0x1003a1fc
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x3c]
mov ecx, 1
mov dword [ebp - 0x10], edx
jmp 0x1003a2f0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x94]
cmp edx, ecx
jae 0x1003a31f
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x2c], ebx
mov ebx, edx
mov dword [ebp - 0x8c], esi
mov esi, dword [ebp - 0x34]
movzx edx, word [eax]
mov word [ebx], dx
add ebx, ecx
add eax, ecx
cmp ebx, esi
jb 0x1003a25e
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x3c]
mov ecx, 1
mov dword [ebp - 0x10], edx
jmp 0x1003a2f0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x94]
cmp edx, ecx
jae 0x1003a31f
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x2c], ebx
mov ebx, edx
mov dword [ebp - 0x8c], esi
mov esi, dword [ebp - 0x34]
mov edx, dword [eax]
mov dword [ebx], edx
add ebx, ecx
add eax, ecx
cmp ebx, esi
jb 0x1003a2aa
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x3c]
mov ecx, 1
mov dword [ebp - 0x10], edx
jmp 0x1003a2f0
mov edx, ecx
mov ecx, dword [ebp - 0x94]
push edx
push eax
push ecx
call fcn.1007f4d4
add esp, 0xc
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0x10], edx
mov ecx, 1
add eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xa0]
mov dword [esi + 0x3c], eax
test edx, edx
je 0x10039a72
test ecx, ecx
jne 0x10039afa
jmp 0x10039477
xor ecx, ecx
jmp 0x1003a2f0
movzx edx, byte [eax]
mov byte [ecx], dl
jmp 0x1003a11b
mov ecx, 1
jmp 0x1003a2f0
mov edx, dword [esi + 0x100]
cmp edx, 7
je 0x1003a344
mov edx, dword [ebp - 0xa0]
test edx, edx
jne 0x100399f8
jmp 0x10039a72
lea eax, [ebp - 0x130]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
movsx eax, byte [eax]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x12c]
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x128]
mov dword [esp + 0x20], eax
lea eax, [ebp - 0x124]
mov dword [esp + 0x24], eax
lea edx, [ebp - 8]
mov eax, esi
lea ecx, [ebp - 4]
call fcn.1003abe8
mov edi, eax
test edi, edi
jne 0x1003a3bf
mov edx, dword [ebp - 0xa0]
test edx, edx
je 0x10039a72
mov edx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x94], ecx
jmp 0x100399f8
mov edx, dword [esi + 0x18]
test edx, edx
je 0x1003a47f
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x1003a412
mov eax, dword [ebp - 0x128]
mov dword [edx + 0x30], eax
mov edx, dword [ebp - 0x124]
mov ecx, dword [esi + 0x18]
mov dword [ecx + 0x34], edx
mov eax, dword [esi + 0x64]
test eax, eax
je 0x1003a3f6
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x64], edx
mov eax, dword [ebp - 0x128]
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x124]
push dword [ebp - 0x128]
movzx ecx, byte [esi + 0x12b]
movzx ebx, byte [esi + 0x12c]
mov edx, ecx
and edx, 0x40
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
mov edi, 2
jne 0x1003a44a
mov edi, 0
test bl, 1
mov edx, 4
jne 0x1003a459
mov edx, 0
or eax, edi
or eax, edx
push eax
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push dword [ebp - 0x12c]
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x2c], ebx
mov ebx, edx
mov dword [ebp - 0x8c], esi
mov esi, dword [ebp - 0x9c]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov eax, edx
shr eax, 0x18
mov edi, edx
and edi, 0xff0000
shr edi, 8
or eax, edi
mov edi, edx
shl edx, 0x18
and edi, 0xff00
shl edi, 8
or eax, edi
or eax, edx
mov dword [ebx], eax
mov edx, ecx
shr edx, 0x18
mov eax, ecx
and eax, 0xff0000
shr eax, 8
or edx, eax
mov eax, ecx
and eax, 0xff00
shl eax, 8
or edx, eax
shl ecx, 0x18
or edx, ecx
mov eax, dword [ebp - 0x28]
mov dword [ebx + 4], edx
add ebx, esi
cmp ebx, eax
jb 0x1003a4c7
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
jmp 0x10039477
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x8c], esi
mov esi, edx
mov edi, dword [esi]
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x134], edi
mov eax, edx
shr eax, 0x18
mov edi, edx
and edi, 0xff0000
shr edi, 8
or eax, edi
mov edi, edx
and edi, 0xff00
shl edi, 8
or eax, edi
shl edx, 0x18
or eax, edx
mov dword [esi], eax
mov edx, ecx
shr edx, 0x18
mov eax, ecx
and eax, 0xff0000
shr eax, 8
or edx, eax
mov eax, ecx
shl ecx, 0x18
and eax, 0xff00
shl eax, 8
or edx, eax
or edx, ecx
mov dword [esi + 4], edx
mov edx, ebx
shr edx, 0x18
mov eax, ebx
and eax, 0xff0000
shr eax, 8
or edx, eax
mov eax, ebx
and eax, 0xff00
shl eax, 8
or edx, eax
shl ebx, 0x18
or edx, ebx
mov dword [esi + 8], edx
mov edx, dword [ebp - 0x134]
mov ecx, edx
shr ecx, 0x18
mov eax, edx
and eax, 0xff0000
shr eax, 8
or ecx, eax
mov eax, edx
shl edx, 0x18
and eax, 0xff00
shl eax, 8
or ecx, eax
or ecx, edx
mov eax, dword [ebp - 0x28]
mov dword [esi + 0xc], ecx
add esi, dword [ebp - 0x9c]
cmp esi, eax
jb 0x1003a542
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
jmp 0x10039477
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x9c]
mov dword [ebp - 0x8c], esi
movzx esi, word [ecx]
mov edx, esi
shr edx, 8
and esi, 0xff
shl esi, 8
or edx, esi
mov word [ecx], dx
add ecx, ebx
cmp ecx, eax
jb 0x1003a61f
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
jmp 0x10039477
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x2c], ebx
mov ebx, edx
mov dword [ebp - 0x8c], esi
mov esi, dword [ebp - 0x9c]
mov ecx, dword [ebx]
mov edx, ecx
shr edx, 0x18
mov edi, ecx
and edi, 0xff0000
shr edi, 8
or edx, edi
mov edi, ecx
shl ecx, 0x18
and edi, 0xff00
shl edi, 8
or edx, edi
or edx, ecx
mov dword [ebx], edx
add ebx, esi
cmp ebx, eax
jb 0x1003a65d
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
jmp 0x10039477
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0xc], edi
mov edi, ecx
mov dword [ebp - 0x2c], ebx
mov ebx, edx
mov dword [ebp - 0x8c], esi
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
test edx, edx
jle 0x1003a705
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x28], eax
xor ecx, ecx
lea esi, [ebx + edi]
mov dword [ebp - 0x98], esi
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x34]
movzx edx, byte [ecx + ebx]
sub esi, ecx
movzx eax, byte [esi - 1]
xor eax, edx
xor edx, eax
mov byte [ecx + ebx], dl
add ecx, 1
xor byte [esi - 1], al
cmp ecx, edi
jl 0x1003a6d0
mov edx, edi
mov edi, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x28]
add ebx, edi
cmp ebx, eax
jb 0x1003a6bb
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x8c]
jmp 0x10039477
mov ecx, dword [ebp - 0xa8]
mov eax, edi
mov edi, ebx
mov ebx, dword [ebp - 0x114]
cmp ecx, 1
jne 0x1003a94c
movsx eax, byte [esi + 0x11c]
cmp eax, 3
je 0x1003a9b6
test dl, 0x10
jne 0x1003a877
mov eax, dword [esi + 0x100]
cmp eax, 7
jne 0x1003a877
mov eax, dword [ebp - 0x130]
test eax, eax
jne 0x1003a877
mov dword [esp + 0x18], 1
lea eax, [ebp - 0x130]
xor edx, edx
mov dword [ebp - 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
lea eax, [ebp - 0x12c]
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x128]
mov dword [esp + 0x20], eax
lea eax, [ebp - 0x124]
mov dword [esp + 0x24], eax
lea edx, [ebp - 8]
lea ecx, [ebp - 4]
mov eax, esi
call fcn.1003abe8
test eax, eax
je 0x1003a877
mov edx, dword [esi + 0x18]
test edx, edx
je 0x1003a962
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x1003a80a
mov eax, dword [ebp - 0x128]
mov dword [edx + 0x30], eax
mov edx, dword [ebp - 0x124]
mov ecx, dword [esi + 0x18]
mov dword [ecx + 0x34], edx
mov eax, dword [esi + 0x64]
test eax, eax
je 0x1003a7ee
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x64], edx
mov eax, dword [ebp - 0x128]
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x124]
push dword [ebp - 0x128]
movzx ecx, byte [esi + 0x12b]
movzx ebx, byte [esi + 0x12c]
mov edx, ecx
and edx, 0x40
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
mov edi, 2
jne 0x1003a842
mov edi, 0
test bl, 1
mov edx, 4
jne 0x1003a851
mov edx, 0
or eax, edi
or eax, edx
push eax
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push dword [esi + 0xc8]
and byte [esi + 0x12b], 0x3f
and byte [esi + 0x12c], 0xf7
and byte [esi + 0x12e], 0xfe
call fcn.100260c0
pop ecx
test eax, eax
je 0x1003a945
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1003a993
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x1003a8e2
mov dword [ecx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [esi + 0x64]
test edx, edx
je 0x1003a8cc
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x64], ecx
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [esi + 0x12b]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
movzx ecx, byte [esi + 0x12c]
test ebx, 0x80
mov ebx, 2
jne 0x1003a910
mov ebx, 0
test cl, 1
mov ecx, 4
jne 0x1003a91f
mov ecx, 0
or edx, ebx
or edx, ecx
push edx
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov dword [ebx + 4], 0
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push dword [ebp - 0x12c]
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push 0
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x48]
movzx eax, byte [ecx]
movzx ecx, byte [ecx + 1]
shl ecx, 8
or eax, ecx
movsx eax, ax
cmp eax, 0x1a
je 0x1003a73f
mov edx, ebx
mov ebx, edi
mov edi, edx
cmp eax, 2
je 0x1003aa03
cmp eax, 3
je 0x1003aa03
push esi
call fcn.1001cb04
pop ecx
test eax, eax
jne 0x1003aa15
mov eax, dword [esi + 0x3c]
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
shl edx, 8
or ecx, edx
movsx eax, cx
cmp eax, 0x1a
jne 0x1003a9d7
movzx edx, byte [esi + 0x12f]
mov eax, ebx
mov ebx, edi
mov edi, eax
jmp 0x1003a73f
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1003aabd
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x1003aa57
mov dword [ecx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [esi + 0x64]
test edx, edx
je 0x1003aa41
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x64], ecx
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [esi + 0x12b]
movzx edi, byte [esi + 0x12c]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
test ebx, 0x80
mov ecx, 2
jne 0x1003aa85
mov ecx, 0
test edi, 1
mov ebx, 4
jne 0x1003aa97
mov ebx, 0
or edx, ecx
or edx, ebx
push edx
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x1003aaf9
mov ecx, 1
mov dword [ebp - 0x14], ecx
jmp 0x1003944f
mov edi, ebx
mov ebx, dword [ebp - 0x114]
jmp 0x1003a726
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1003abab
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x1003ab48
mov dword [ecx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [esi + 0x64]
test edx, edx
je 0x1003ab32
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x64], ecx
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ebx, byte [esi + 0x12b]
mov ecx, ebx
and ecx, 0x40
xor edx, edx
test ecx, ecx
setne dl
movzx ecx, byte [esi + 0x12c]
test ebx, 0x80
mov ebx, 2
jne 0x1003ab76
mov ebx, 0
test cl, 1
mov ecx, 4
jne 0x1003ab85
mov ecx, 0
or edx, ebx
or edx, ecx
push edx
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
xor eax, eax
mov esp, ebp
pop ebp
ret