Function at 0x100117b0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x130
mov eax, dword [0x1008a018]
xor eax, esp
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x134]
push ebx
push ebp
mov ebp, dword [esp + 0x140]
push esi
xor ebx, ebx
push edi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14c]
push 0xb0
mov dword [esp + 0x4c], eax
mov dword [eax], ebx
lea eax, [esp + 0x58]
push ebx
push eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x50], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x5c], ebx
call fcn.1006487a
add esp, 0xc
push 0x2f
lea ecx, [esp + 0x111]
push ebx
push ecx
mov dword [esp + 0x24], ebx
mov byte [esp + 0x118], bl
call fcn.1006487a
add esp, 0xc
mov dword [esp + 0x38], ebx
lea ecx, [ebx + 1]
mov eax, ebx
imul eax, eax, 0x2c
xor edi, edi
cmp dword [eax + 0x100f3f50], ecx
mov dword [esp + 0x4c], eax
jne 0x10012777
mov eax, dword [ebp + 8]
imul ebx, ebx, 0x23fb
cmp eax, dword [ebx + 0x1009c41d]
mov dword [esp + 0x20], ebx
ja 0x10012777
cmp eax, dword [ebx + 0x1009c419]
jb 0x10012777
cmp dword [ebx + 0x1009c421], edi
je 0x100118a0
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebx + 0x1009c429]
jg 0x10012777
cmp eax, dword [ebx + 0x1009c425]
jl 0x10012777
cmp dword [ebx + 0x1009c42d], edi
je 0x100118c3
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebx + 0x1009c435]
ja 0x10012777
cmp eax, dword [ebx + 0x1009c431]
jb 0x10012777
cmp dword [ebx + 0x1009c439], edi
je 0x100118e6
mov eax, dword [ebp]
cmp eax, dword [ebx + 0x1009c441]
jg 0x10012777
cmp eax, dword [ebx + 0x1009c43d]
jl 0x10012777
cmp dword [ebx + 0x1009c445], edi
je 0x10011909
mov eax, dword [ebp + 4]
cmp eax, dword [ebx + 0x1009c44d]
jg 0x10012777
cmp eax, dword [ebx + 0x1009c449]
jl 0x10012777
cmp dword [ebx + 0x1009c451], edi
je 0x1001192c
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebx + 0x1009c459]
jg 0x10012777
cmp eax, dword [ebx + 0x1009c455]
jl 0x10012777
cmp dword [ebx + 0x1009c45d], edi
je 0x10011952
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
cmp eax, dword [ebx + 0x1009c465]
jg 0x10012777
cmp eax, dword [ebx + 0x1009c461]
jl 0x10012777
cmp dword [ebx + 0x1009c469], edi
je 0x10011975
mov eax, dword [ebp + 0x1c]
cmp eax, dword [ebx + 0x1009c471]
jg 0x10012777
cmp eax, dword [ebx + 0x1009c46d]
jl 0x10012777
mov eax, dword [ebx + 0x1009c475]
cmp eax, 2
je 0x10011989
cmp dword [ebp + 0x20], eax
jne 0x10012777
mov eax, dword [ebx + 0x1009c47d]
cmp eax, 2
je 0x1001199d
cmp dword [ebp + 0x2c], eax
jne 0x10012777
mov eax, dword [ebx + 0x1009c479]
cmp eax, 2
je 0x100119b1
cmp dword [ebp + 0x24], eax
jne 0x10012777
mov eax, dword [ebx + 0x1009c481]
cmp eax, 2
je 0x100119c5
cmp dword [ebp + 0x30], eax
jne 0x10012777
mov eax, dword [ebp + 0x28]
cmp eax, edi
jne 0x100119d8
cmp dword [ebx + 0x1009c491], edi
je 0x10012777
cmp eax, ecx
jne 0x100119e8
cmp dword [ebx + 0x1009c48d], edi
je 0x10012777
cmp eax, 2
jne 0x100119f9
cmp dword [ebx + 0x1009c495], edi
je 0x10012777
mov al, byte [ebx + 0x1009c49a]
test al, al
je 0x10011a0c
cmp byte [ebp + 0x51], al
jne 0x10012777
mov al, byte [ebx + 0x1009c499]
test al, al
je 0x10011a1f
cmp byte [ebp + 0x50], al
jne 0x10012777
cmp dword [ebx + 0x1009c4a7], edi
je 0x10011a47
mov edx, dword [ebp + 0x44]
cmp edx, dword [ebx + 0x1009c4ab]
jge 0x10011a47
cmp dword [ebx + 0x1009c49b], edi
je 0x10011a47
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x54], edi
jne 0x10012777
cmp dword [ebx + 0x1009c49f], edi
je 0x10011a58
cmp dword [ebp + 0x56], ecx
jne 0x10012777
cmp dword [ebx + 0x1009c4a3], edi
je 0x10011a69
cmp dword [ebp + 0x52], ecx
jne 0x10012777
mov edx, dword [ebx + 0x1009c4af]
cmp edx, edi
je 0x10011aac
mov esi, dword [ebp + 0x40]
cmp esi, 0xffffffff
je 0x10012777
xor eax, eax
cmp edx, edi
jle 0x10011a9e
lea ecx, [ebx + 0x1009c4b3]
jmp 0x10011a90
cmp esi, dword [ecx]
je 0x10011aa8
add eax, 1
add ecx, 4
cmp eax, edx
jl 0x10011a90
cmp dword [esp + 0x10], edi
je 0x10012777
mov dword [esp + 0x10], edi
mov edx, dword [ebx + 0x1009c533]
cmp edx, edi
je 0x10011aed
mov esi, dword [ebp + 0x40]
cmp esi, 0xffffffff
je 0x10012777
xor eax, eax
cmp edx, edi
jle 0x10011ade
lea ecx, [ebx + 0x1009c4b3]
mov edi, edi
cmp esi, dword [ecx]
je 0x10011ae4
add eax, 1
add ecx, 4
cmp eax, edx
jl 0x10011ad0
cmp dword [esp + 0x10], edi
je 0x10011aed
mov dword [esp + 0x10], edi
jmp 0x10012777
mov esi, dword [ebx + 0x1009c5b7]
cmp esi, edi
je 0x10011b29
xor ecx, ecx
cmp esi, edi
jle 0x10011b1a
lea edx, [ebx + 0x1009c5bb]
mov eax, dword [edx]
cmp eax, 0x1f
jge 0x10011b20
cmp dword [ebp + eax*4 + 0x66], edi
je 0x10011b20
add ecx, 1
add edx, 4
cmp ecx, esi
jl 0x10011b03
cmp dword [esp + 0x10], edi
je 0x10011b29
mov dword [esp + 0x10], edi
jmp 0x10012777
mov esi, dword [ebx + 0x1009c6bf]
cmp esi, edi
je 0x10011b65
xor ecx, ecx
cmp esi, edi
jle 0x10011b57
lea edx, [ebx + 0x1009c6c3]
nop
mov eax, dword [edx]
cmp eax, 0x1f
jge 0x10011b57
cmp dword [ebp + eax*4 + 0x66], edi
jne 0x10011b61
add ecx, 1
add edx, 4
cmp ecx, esi
jl 0x10011b40
cmp dword [esp + 0x10], edi
je 0x10012777
mov dword [esp + 0x10], edi
mov esi, dword [ebx + 0x1009c63b]
cmp esi, edi
je 0x10011ba6
xor ecx, ecx
cmp esi, edi
jle 0x10011b97
lea edx, [ebx + 0x1009c63f]
jmp 0x10011b80
mov eax, dword [edx]
cmp eax, 0x1f
jge 0x10011b8d
cmp dword [ebp + eax*4 + 0x66], edi
jne 0x10011b9d
add ecx, 1
add edx, 4
cmp ecx, esi
jl 0x10011b80
cmp dword [esp + 0x10], edi
je 0x10011ba6
mov dword [esp + 0x10], edi
jmp 0x10012777
mov edx, dword [ebx + 0x1009c743]
cmp edx, edi
je 0x10011c15
cmp dword [ebp + 0x4c], edi
jne 0x10012777
cmp dword [ebp], edx
jg 0x10012777
xor esi, esi
lea edi, [ebp + 0x66]
cmp dword [edi], 0
je 0x10011bf5
xor eax, eax
test edx, edx
jle 0x10011be6
lea ecx, [ebx + 0x1009c747]
cmp esi, dword [ecx]
je 0x10011bed
add eax, 1
add ecx, 4
cmp eax, edx
jl 0x10011bd8
cmp dword [esp + 0x10], 0
je 0x10011c69
mov dword [esp + 0x10], 0
add esi, 1
add edi, 4
cmp esi, 0x1f
jl 0x10011bc7
cmp dword [esp + 0x10], 2
je 0x10012777
mov dword [esp + 0x10], 0
xor edi, edi
mov esi, dword [ebx + 0x1009c9cf]
cmp esi, edi
je 0x10011c76
xor edx, edx
cmp esi, edi
jle 0x10011c5a
lea ecx, [ebx + 0x1009ca53]
jmp 0x10011c30
mov eax, dword [ecx]
cmp eax, 0x8a
jge 0x10011c60
cmp byte [ebp + eax*2 + 0xe2], 0
je 0x10011c60
movzx eax, byte [ebp + eax*2 + 0xe3]
cmp eax, dword [ecx - 0x80]
jne 0x10011c60
add edx, 1
add ecx, 4
cmp edx, esi
jl 0x10011c30
cmp dword [esp + 0x10], edi
je 0x10011c76
mov dword [esp + 0x10], edi
jmp 0x10012777
mov dword [esp + 0x10], 2
jmp 0x10012777
mov esi, dword [ebx + 0x1009c7c7]
cmp esi, edi
je 0x10011cc9
xor edx, edx
cmp esi, edi
jle 0x10011cba
lea ecx, [ebx + 0x1009c84b]
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, 0x8a
jge 0x10011cc0
cmp byte [ebp + eax*2 + 0xe2], 0
je 0x10011cb0
movzx eax, byte [ebp + eax*2 + 0xe3]
cmp eax, dword [ecx - 0x80]
je 0x10011cc0
add edx, 1
add ecx, 4
cmp edx, esi
jl 0x10011c90
cmp dword [esp + 0x10], edi
je 0x10011cc9
mov dword [esp + 0x10], edi
jmp 0x10012777
mov esi, dword [ebx + 0x1009c8cb]
cmp esi, edi
je 0x10011d18
xor edx, edx
cmp esi, edi
jle 0x10011d0a
lea ecx, [ebx + 0x1009c94f]
nop
mov eax, dword [ecx]
cmp eax, 0x8a
jge 0x10011d0a
cmp byte [ebp + eax*2 + 0xe2], 0
je 0x10011d00
movzx eax, byte [ebp + eax*2 + 0xe3]
cmp eax, dword [ecx - 0x80]
je 0x10011d14
add edx, 1
add ecx, 4
cmp edx, esi
jl 0x10011ce0
cmp dword [esp + 0x10], edi
je 0x10012777
mov dword [esp + 0x10], edi
mov esi, dword [ebx + 0x1009cbdb]
cmp esi, edi
je 0x10011d58
xor ecx, ecx
cmp esi, edi
jle 0x10011d4a
lea edx, [ebx + 0x1009cc63]
mov edi, edi
mov eax, dword [edx]
cmp eax, 3
jge 0x10011d4a
cmp dword [ebp + eax*4 + 0x2ce], edi
jne 0x10011d54
add ecx, 1
add edx, 4
cmp ecx, esi
jl 0x10011d30
cmp dword [esp + 0x10], edi
je 0x10012777
mov dword [esp + 0x10], edi
mov esi, dword [ebx + 0x1009cc5f]
cmp esi, edi
je 0x10011d99
xor ecx, ecx
cmp esi, edi
jle 0x10011d8a
lea edx, [ebx + 0x1009cc63]
mov edi, edi
mov eax, dword [edx]
cmp eax, 1
jge 0x10011d90
cmp dword [ebp + eax*4 + 0x2ca], edi
je 0x10011d90
add ecx, 1
add edx, 4
cmp ecx, esi
jl 0x10011d70
cmp dword [esp + 0x10], edi
je 0x10011d99
mov dword [esp + 0x10], edi
jmp 0x10012777
mov esi, dword [ebx + 0x1009cce3]
cmp esi, edi
je 0x10011dd9
xor ecx, ecx
cmp esi, edi
jle 0x10011dca
lea edx, [ebx + 0x1009cce7]
nop
mov eax, dword [edx]
cmp eax, 0x2d
jge 0x10011dca
cmp dword [ebp + eax*4 + 0x216], edi
je 0x10011dd0
add ecx, 1
add edx, 4
cmp ecx, esi
jl 0x10011db0
cmp dword [esp + 0x10], edi
je 0x10011dd9
mov dword [esp + 0x10], edi
jmp 0x10012777
mov esi, dword [ebx + 0x1009cd67]
cmp esi, edi
je 0x10011e19
xor ecx, ecx
cmp esi, edi
jle 0x10011e0a
lea edx, [ebx + 0x1009cd6b]
nop
mov eax, dword [edx]
cmp eax, 0x2d
jge 0x10011e10
cmp dword [ebp + eax*4 + 0x216], edi
jne 0x10011e10
add ecx, 1
add edx, 4
cmp ecx, esi
jl 0x10011df0
cmp dword [esp + 0x10], edi
je 0x10011e19
mov dword [esp + 0x10], edi
jmp 0x10012777
mov esi, dword [ebx + 0x1009cdeb]
cmp esi, edi
je 0x10011e58
xor ecx, ecx
cmp esi, edi
jle 0x10011e4a
lea edx, [ebx + 0x1009cdef]
nop
mov eax, dword [edx]
cmp eax, 0x2d
jge 0x10011e4a
cmp dword [ebp + eax*4 + 0x216], edi
jne 0x10011e54
add ecx, 1
add edx, 4
cmp ecx, esi
jl 0x10011e30
cmp dword [esp + 0x10], edi
je 0x10012777
mov dword [esp + 0x10], edi
mov esi, dword [ebx + 0x1009cef3]
cmp esi, edi
je 0x10011e9a
xor ecx, ecx
cmp esi, edi
jle 0x10011e8b
lea edx, [ebx + 0x1009cef7]
mov edi, edi
mov eax, dword [edx]
cmp eax, 8
jge 0x10011e91
cmp dword [ebp + eax*4 + 0x1f6], 1
je 0x10011e91
add ecx, 1
add edx, 4
cmp ecx, esi
jl 0x10011e70
cmp dword [esp + 0x10], edi
je 0x10011e9a
mov dword [esp + 0x10], edi
jmp 0x10012777
mov esi, dword [ebx + 0x1009ce6f]
cmp esi, edi
je 0x10011eda
xor ecx, ecx
cmp esi, edi
jle 0x10011ecb
lea edx, [ebx + 0x1009ce73]
mov eax, dword [edx]
cmp eax, 8
jge 0x10011ed1
cmp dword [ebp + eax*4 + 0x1f6], 1
jne 0x10011ed1
add ecx, 1
add edx, 4
cmp ecx, esi
jl 0x10011eb0
cmp dword [esp + 0x10], edi
je 0x10011eda
mov dword [esp + 0x10], edi
jmp 0x10012777
mov eax, dword [ebp + 8]
sub eax, dword [ebp + 0x18]
cmp eax, dword [ebx + 0x1009cf77]
jb 0x10012777
cmp dword [ebx + 0x1009cf7b], edi
je 0x1001208b
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x24]
cmp ecx, 0x30
jb 0x10012777
cmp eax, 0x800
jb 0x10012777
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x20]
lea edi, [eax + ecx - 0x20]
call fcn.100127a0
test eax, eax
je 0x10012777
test edi, edi
je 0x10011f50
xor esi, esi
push 4
lea ecx, [esi + edi]
mov edx, 0x1005bba4
call fcn.100113e0
test eax, eax
je 0x10012081
add esi, 1
cmp esi, 0x1d
jb 0x10011f31
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
lea edi, [ecx + edx - 0x20]
test edi, edi
je 0x10011f87
xor esi, esi
push 4
lea ecx, [esi + edi]
mov edx, 0x1005bbac
call fcn.100113e0
test eax, eax
je 0x10012081
add esi, 1
cmp esi, 0x1d
jb 0x10011f64
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
lea edi, [eax + ecx - 0x20]
test edi, edi
je 0x10011fc3
xor esi, esi
jmp 0x10011fa0
push 4
lea ecx, [esi + edi]
mov edx, 0x1005bbb4
call fcn.100113e0
test eax, eax
je 0x10012081
add esi, 1
cmp esi, 0x1d
jb 0x10011fa0
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
lea edi, [edx + eax - 0x20]
test edi, edi
je 0x10011ff6
xor esi, esi
push 4
lea ecx, [esi + edi]
mov edx, 0x1005bbbc
call fcn.100113e0
test eax, eax
je 0x10012081
add esi, 1
cmp esi, 0x1d
jb 0x10011fd3
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
lea eax, [ecx + edx - 0x20]
push 0x1005bbc4
mov edi, 4
push eax
lea eax, [edi + 0x1c]
call fcn.10011640
add esp, 8
test eax, eax
jne 0x10012081
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
lea eax, [ecx + edx - 0x20]
push 0x1005bbcc
push eax
lea eax, [edi + 0x1c]
call fcn.10011640
add esp, 8
test eax, eax
jne 0x10012081
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
lea eax, [ecx + edx - 0x20]
push 0x1005bbd4
push eax
lea eax, [edi + 0x1c]
call fcn.10011640
add esp, 8
test eax, eax
jne 0x10012081
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
lea eax, [ecx + edx - 0x20]
push 0x1005bbdc
push eax
lea eax, [edi + 0x1c]
call fcn.10011640
add esp, 8
test eax, eax
jne 0x10012081
cmp dword [esp + 0x10], eax
je 0x10012777
mov dword [esp + 0x10], 0
xor edi, edi
mov eax, dword [ebx + 0x1009cf83]
cmp eax, edi
mov dword [esp + 0x24], eax
je 0x1001213c
xor ebp, ebp
test eax, eax
jle 0x10012108
lea edi, [ebx + 0x1009cf87]
mov esi, dword [edi]
test esi, esi
je 0x100120f2
xor edx, edx
test esi, esi
jle 0x100120f2
lea ecx, [edi + 0x84]
jmp 0x100120c0
mov eax, dword [ecx]
cmp eax, 0x8a
jge 0x100120f2
mov ebx, dword [esp + 0x14]
cmp byte [ebx + eax*2 + 0xe2], 0
je 0x100120e4
movzx eax, byte [ebx + eax*2 + 0xe3]
cmp eax, dword [ecx - 0x80]
je 0x10012120
mov ebx, dword [esp + 0x20]
add edx, 1
add ecx, 4
cmp edx, esi
jl 0x100120c0
cmp dword [esp + 0x10], 0
je 0x1001210f
add ebp, 1
add edi, 0x104
cmp ebp, dword [esp + 0x24]
jl 0x100120a9
cmp dword [esp + 0x10], 2
jne 0x1001212e
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x10], 0
jmp 0x10012777
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x10], 1
jmp 0x100120f9
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x10], 0
xor edi, edi
cmp dword [ebx + 0x1009cad3], edi
jne 0x1001215e
cmp dword [ebx + 0x1009cb57], edi
jne 0x1001215e
cmp dword [ebx + 0x1009dfc7], edi
je 0x100125dc
mov ebp, dword [esp + 0x14]
xor edi, edi
cmp dword [esp + 0x34], edi
jne 0x10012777
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x10012179
push eax
call fcn.10063f66
add esp, 4
push 0x20000
call fcn.10063fb6
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x14]
mov edi, eax
mov eax, dword [ebp + 8]
lea esi, [eax - 0x10]
add esp, 4
cmp edx, esi
mov dword [esp + 0x18], edi
ja 0x1001275a
cmp eax, 0x20
jb 0x1001275a
cmp dword [ebx + 0x1009c414], 0
je 0x100121bb
mov esi, dword [ecx + 0x10]
jmp 0x100121bf
sub eax, edx
mov esi, eax
cmp esi, 0x20
jl 0x1001275a
cmp esi, 0x20000
jl 0x100121d5
mov esi, 0x20000
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
je 0x100126cb
mov ebp, dword [eax]
push ecx
push ecx
push ecx
mov ecx, dword [ebp + 0x18]
push edx
push eax
call ecx
test eax, eax
jl 0x100126cb
mov edx, dword [esp + 0x40]
mov eax, dword [edx]
test eax, eax
je 0x100126cb
test edi, edi
je 0x100126d8
mov ecx, dword [eax]
lea edx, [esp + 0x30]
push edx
push esi
push edi
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jl 0x100126cb
mov eax, dword [ebx + 0x1009cad3]
test eax, eax
je 0x10012321
xor ebp, ebp
test eax, eax
jle 0x100122ec
lea esi, [ebx + 0x1009cad7]
mov eax, dword [esi]
cmp eax, 0x2d
jge 0x100122f3
lea edx, [eax + eax*2]
shl edx, 4
push 0x30
add edx, 0x100f4608
lea ecx, [esp + 0x110]
call fcn.100113b0
lea ecx, [esp + 0x10c]
call fcn.10011330
lea ecx, [eax - 1]
cmp ecx, 0x2e
ja 0x100122f3
xor ecx, ecx
test eax, eax
jle 0x1001229f
jmp 0x10012290
xor byte [esp + ecx + 0x10c], 0xdb
add ecx, 1
cmp ecx, eax
jl 0x10012290
mov edx, dword [esi]
mov eax, dword [esp + edx*4 + 0x50]
cmp eax, 1
je 0x100122ec
cmp eax, 2
je 0x100122f3
lea ecx, [esp + 0x10c]
call fcn.10011330
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x10c]
push ecx
mov edi, eax
mov eax, dword [esp + 0x34]
push edx
call fcn.10011640
add esp, 8
test eax, eax
je 0x10012310
add ebp, 1
add esi, 4
cmp ebp, dword [ebx + 0x1009cad3]
jl 0x10012244
cmp dword [esp + 0x10], 0
je 0x10012321
mov ecx, dword [esp + 0x18]
xor esi, esi
push ecx
mov dword [esp + 0x14], esi
call fcn.10063f66
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
jmp 0x10012774
mov eax, dword [ebx + ebp*4 + 0x1009cad7]
mov dword [esp + eax*4 + 0x50], 2
jmp 0x100122f3
mov eax, dword [ebx + 0x1009cb57]
test eax, eax
je 0x10012461
mov dword [esp + 0x28], 0
jle 0x10012420
mov ebx, dword [esp + 0x20]
lea ebx, [ebx + 0x1009cad7]
jmp 0x10012350
mov eax, dword [ebx + 0x84]
cmp eax, 0x2d
jge 0x10012427
lea edx, [eax + eax*2]
shl edx, 4
push 0x30
add edx, 0x100f4608
lea ecx, [esp + 0x110]
call fcn.100113b0
lea ecx, [esp + 0x10c]
call fcn.10011330
lea edx, [eax - 1]
cmp edx, 0x2e
ja 0x10012427
xor ecx, ecx
test eax, eax
jle 0x100123af
jmp 0x100123a0
xor byte [esp + ecx + 0x10c], 0xdb
add ecx, 1
cmp ecx, eax
jl 0x100123a0
mov eax, dword [ebx]
mov eax, dword [esp + eax*4 + 0x50]
cmp eax, 2
je 0x10012420
cmp eax, 1
je 0x10012427
lea ecx, [esp + 0x10c]
call fcn.10011330
mov edi, dword [esp + 0x30]
mov ebp, eax
cmp ebp, edi
jae 0x10012402
sub edi, ebp
lea ecx, [edi + 1]
xor esi, esi
test ecx, ecx
jbe 0x10012402
mov edx, dword [esp + 0x18]
lea ecx, [esi + edx]
push ebp
lea edx, [esp + 0x110]
call fcn.100113e0
test eax, eax
je 0x10012444
add esi, 1
lea eax, [edi + 1]
cmp esi, eax
jb 0x100123e0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
add eax, 1
add ebx, 4
cmp eax, dword [ecx + 0x1009cb57]
mov dword [esp + 0x28], eax
jl 0x10012350
cmp dword [esp + 0x10], 0
je 0x1001245d
mov edx, dword [esp + 0x18]
xor esi, esi
push edx
mov dword [esp + 0x14], esi
call fcn.10063f66
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
jmp 0x10012774
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov ecx, dword [edx + eax*4 + 0x1009cad7]
mov dword [esp + ecx*4 + 0x50], 1
jmp 0x10012427
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x1009dfc7]
test eax, eax
je 0x100125dc
mov dword [esp + 0x28], 0
jle 0x100125a6
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0x1009dfcb]
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x24]
cmp dword [edx], 0
mov dword [esp + 0x3c], 0
jle 0x1001257c
mov ebx, edx
add ebx, 4
mov eax, dword [ebx]
cmp eax, 0x2d
jg 0x1001257c
mov ecx, dword [esp + eax*4 + 0x50]
cmp ecx, 2
je 0x1001257c
cmp ecx, 1
je 0x100125ca
lea ecx, [eax + eax*2]
shl ecx, 4
add ecx, 0x100f4608
call fcn.10011330
push eax
mov eax, dword [ebx]
lea edx, [eax + eax*2]
shl edx, 4
add edx, 0x100f4608
lea ecx, [esp + 0x110]
call fcn.100113b0
lea ecx, [esp + 0x10c]
call fcn.10011330
lea ecx, [eax - 1]
cmp ecx, 0x2e
ja 0x1001257c
xor ecx, ecx
test eax, eax
jle 0x1001251f
lea esp, [esp]
xor byte [esp + ecx + 0x10c], 0xdb
add ecx, 1
cmp ecx, eax
jl 0x10012510
lea ecx, [esp + 0x10c]
call fcn.10011330
mov ebp, dword [esp + 0x30]
mov esi, eax
cmp esi, ebp
jae 0x10012562
sub ebp, esi
lea edx, [ebp + 1]
xor edi, edi
test edx, edx
jbe 0x10012562
mov eax, dword [esp + 0x18]
push esi
lea ecx, [edi + eax]
lea edx, [esp + 0x110]
call fcn.100113e0
test eax, eax
je 0x100125ca
add edi, 1
lea ecx, [ebp + 1]
cmp edi, ecx
jb 0x10012540
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
add eax, 1
add ebx, 4
cmp eax, dword [edx]
mov dword [esp + 0x3c], eax
jl 0x100124a5
cmp dword [esp + 0x10], 0
je 0x100125ad
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
add dword [esp + 0x24], 0x84
add eax, 1
cmp eax, dword [ecx + 0x1009dfc7]
mov dword [esp + 0x28], eax
jl 0x1001248b
cmp dword [esp + 0x10], 2
jne 0x100125d4
mov edx, dword [esp + 0x18]
xor esi, esi
push edx
mov dword [esp + 0x14], esi
call fcn.10063f66
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
jmp 0x10012774
mov dword [esp + 0x10], 1
jmp 0x10012583
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x100f3f54]
cmp eax, 0x540000d
jne 0x10012607
mov edx, dword [esp + 0x1c]
call fcn.10012800
test eax, eax
je 0x10012698
mov ebp, dword [esp + 0x14]
jmp 0x10012777
cmp eax, 0x5400025
jne 0x10012635
push 0xd
mov edx, 0x1005bbe4
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x48]
push ecx
mov ecx, dword [eax + 0x4c]
call fcn.10011480
add esp, 8
test eax, eax
je 0x10012698
mov ebp, dword [esp + 0x14]
jmp 0x10012777
cmp eax, 0x540001a
jne 0x1001264d
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x48]
push 9
push edx
mov edx, 0x1005bbf4
jmp 0x1001261d
cmp eax, 0x5400003
jne 0x100126f7
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x28], 1
jne 0x10012698
mov eax, dword [ecx + 0x1c]
cmp eax, 6
je 0x1001266f
cmp eax, 7
jne 0x10012698
cmp dword [ecx + 0xc], 4
jne 0x10012698
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0xc], 0xa0
jb 0x10012698
mov ecx, dword [eax + 8]
push 5
add ecx, 0x50
mov edx, 0x1005bc00
call fcn.100113e0
test eax, eax
je 0x1001262c
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
imul eax, eax, 0x2c
mov edx, dword [eax + 0x100f3f54]
mov dword [ecx + 4], edx
mov eax, dword [eax + 0x100f3f58]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x48]
mov dword [ecx], 1
mov dword [esp + 0x2c], 1
mov edi, dword [esp + 0x18]
test edi, edi
je 0x100126d8
push edi
call fcn.10063f66
add esp, 4
mov ecx, dword [esp + 0x13c]
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10063f56
add esp, 0x130
ret 0xc
cmp eax, 0x540001c
jne 0x1001270a
push 4
mov edx, 0x1005bc08
jmp 0x10012615
cmp eax, 0x5400016
jne 0x10012725
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x48]
push 8
push edx
mov edx, 0x1005bc10
jmp 0x1001261d
cmp eax, 0x5400002
je 0x1001274c
cmp eax, 0x5400026
jne 0x10012698
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x3c], 0xfc8d8735
jne 0x10012698
mov ebp, eax
jmp 0x10012777
mov esi, dword [esp + 0x1c]
call fcn.100116a0
jmp 0x10012628
test edi, edi
mov dword [esp + 0x34], 1
je 0x10012777
push edi
call fcn.10063f66
mov dword [esp + 0x1c], 0
add esp, 4
mov ebx, dword [esp + 0x38]
mov ecx, 1
add ebx, ecx
cmp ebx, 0x27
mov dword [esp + 0x38], ebx
jb 0x10011841
jmp 0x100126c7