Function at 0x100c1150
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x4520
call fcn.10512080
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x451c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x4540]
mov edx, dword [esp + 0x4538]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x4544]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x4548]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x454c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x4550]
mov ebx, dword [esp + 0x4534]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x4554]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x4558]
mov ebp, dword [edx + 0xa8]
mov dword [esp + 0xa0], eax
mov eax, dword [edx + 0x10b0]
lea esi, [edx + 0xe0]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x30], edx
mov ecx, dword [eax]
mov eax, dword [ebx + 0x3e7a8]
mov ebx, dword [edx + 0x60]
mov dword [esp + 0x74], eax
mov eax, dword [edx + 0x70]
mov edx, dword [esi + 0xffc]
mov dword [esp + 0x10], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x5b8]
mov dword [esp + 0x40], eax
movzx eax, byte [ecx + 0x10661ea0]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x2c], ebp
movzx edi, byte [ecx + 0x10661eb8]
test edx, edx
js 0x100c1257
mov dword [esp + 0x20], edi
jmp 0x100c1260
sar edx, 3
add edx, edi
mov dword [esp + 0x20], edx
mov ecx, dword [esi + 0xff4]
test ecx, ecx
js 0x100c1270
mov dword [esp + 0x24], eax
jmp 0x100c1279
sar ecx, 3
add ecx, eax
mov dword [esp + 0x24], ecx
mov esi, dword [esi + 0x54c]
xor edx, edx
mov ecx, esi
mov dword [esp + 0x48], 2
sar eax, cl
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx + 0x550]
sar edi, cl
cmp eax, 4
cmovl edx, dword [esp + 0x48]
add eax, edx
mov dword [esp + 0x68], eax
xor eax, eax
cmp edi, 4
cmovl eax, dword [esp + 0x48]
add edi, eax
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x20]
sar edi, cl
mov ecx, esi
mov esi, dword [esp + 0x54]
add edi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x10]
sar eax, cl
lea ecx, [esp + 0x88]
add eax, edx
mov dword [esp + 0x24], eax
mov byte [edi + 6], 0
mov edi, dword [esp + 0x74]
push ecx
cmp byte [edi + 0x4c], 0
je 0x100c134d
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0xd4]
push ecx
lea ecx, [esp + 0x4d8]
push ecx
push dword [edi + 0x48]
push eax
push dword [esp + 0x38]
push esi
push ebx
call fcn.1013ff30
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0xf8]
push eax
lea eax, [esp + 0x4fc]
push eax
push dword [edi + 0x48]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push esi
push ebp
call fcn.1013ff30
add esp, 0x48
jmp 0x100c1399
lea ecx, [esp + 0xd0]
push ecx
push eax
push dword [esp + 0x2c]
push esi
push ebx
call fcn.1013fe70
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0xe8]
push eax
push dword [esp + 0x44]
push dword [esp + 0x44]
push esi
push ebp
call fcn.1013fe70
mov eax, dword [esp + 0xb8]
add esp, 0x30
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x44ec]
push eax
push 1
push dword [esp + 0x54]
call fcn.100bc120
mov edx, dword [esp + 0x7c]
add esp, 0xc
cmp dword [esp + 0x7c], edx
mov dword [esp + 0x6c], eax
cmovg edx, dword [esp + 0x7c]
cmp edx, 1
jle 0x100c1da1
cmp edx, 0x40
jg 0x100c1da1
mov ecx, dword [esp + 0x30]
mov edx, ebx
mov eax, dword [ecx + 0x3198]
lea ecx, [ebp*2]
add eax, 0x1000
mov dword [esp + 0x58], ecx
cmp byte [edi + 0x4c], 0
mov dword [esp + 0x48], eax
lea eax, [edx + edx]
mov dword [esp + 0x80], eax
je 0x100c140a
movzx ebx, word [eax]
movzx eax, word [ecx]
jmp 0x100c1411
movzx ebx, byte [edx]
movzx eax, byte [ebp]
mov edi, dword [esp + 0x20]
mov ecx, eax
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x50], ecx
test edi, edi
jle 0x100c151e
xor ecx, ecx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x50], eax
mov ebx, edi
xor eax, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x28], ebx
nop dword [eax]
xor edi, edi
test ebp, ebp
jle 0x100c14fd
mov ebp, eax
nop dword [eax]
lea esi, [eax + edi]
lea eax, [ecx + edi]
mov ecx, dword [esp + 0x48]
lea ebx, [ecx + eax*4]
mov eax, dword [esp + 0x74]
cmp byte [eax + 0x4c], 0
je 0x100c1490
mov eax, dword [esp + 0x80]
movzx ecx, word [eax + ebp*2]
mov eax, dword [esp + 0x58]
mov edx, ecx
movzx eax, word [eax + esi*2]
mov esi, eax
jmp 0x100c14a0
mov eax, dword [esp + 0x2c]
movzx edx, byte [edx + ebp]
mov ecx, edx
movzx esi, byte [esi + eax]
mov eax, esi
mov word [ebx], cx
mov word [ebx + 2], ax
cmp edx, dword [esp + 0x60]
jge 0x100c14b3
mov dword [esp + 0x60], edx
jmp 0x100c14c0
mov eax, dword [esp + 0x5c]
cmp edx, eax
cmovg eax, edx
mov dword [esp + 0x5c], eax
cmp esi, dword [esp + 0x64]
jge 0x100c14cc
mov dword [esp + 0x64], esi
jmp 0x100c14d9
mov eax, dword [esp + 0x50]
cmp esi, eax
cmovg eax, esi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x44]
inc edi
mov ecx, dword [esp + 0x34]
inc ebp
mov edx, dword [esp + 0x18]
cmp edi, dword [esp + 0x24]
jl 0x100c1460
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x54]
mov ebp, dword [esp + 0x24]
add eax, esi
add ecx, ebp
sub ebx, 1
mov dword [esp + 0x44], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], ebx
jne 0x100c1450
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x84]
mov eax, 8
cmp dword [esp + 0x88], edx
mov ebx, 2
mov dword [esp + 0x18], ebx
cmovg edx, dword [esp + 0x88]
cmp edx, eax
cmovg edx, eax
mov dword [esp + 0x54], edx
cmp edx, ebx
jl 0x100c1da1
mov eax, edi
imul eax, ebp
mov dword [esp + 0x44], eax
nop dword [eax]
xor edi, edi
test ebx, ebx
jle 0x100c15cf
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
sub esi, eax
movzx ebx, ax
mov eax, dword [esp + 0x64]
sub ecx, eax
movzx ebp, ax
lea eax, [ecx + ecx]
mov dword [esp + 0x58], eax
lea eax, [esi + esi]
mov dword [esp + 0x2c], eax
nop word [eax + eax]
mov eax, esi
add esi, dword [esp + 0x2c]
cdq
idiv dword [esp + 0x18]
cdq
sub eax, edx
sar eax, 1
add eax, ebx
mov word [esp + edi*4 + 0x44cc], ax
mov eax, ecx
cdq
idiv dword [esp + 0x18]
add ecx, dword [esp + 0x58]
cdq
sub eax, edx
sar eax, 1
add eax, ebp
mov word [esp + edi*4 + 0x44ce], ax
inc edi
cmp edi, dword [esp + 0x18]
jl 0x100c1590
mov ebx, dword [esp + 0x18]
push 0x32
push ebx
push dword [esp + 0x4c]
lea eax, [esp + 0x44d8]
push dword [esp + 0x4c]
push eax
push dword [esp + 0x5c]
call fcn.100c0cd0
add esp, 0x18
cmp dword [esp + 0x6c], 0
jle 0x100c16c4
lea eax, [ebx + ebx]
xor esi, esi
mov dword [esp + 0x34], esi
test eax, eax
jle 0x100c16c4
mov eax, dword [esp + 0x3c]
movzx edx, word [esp + 0x44ec]
mov eax, dword [eax + 0x3e7a8]
mov ecx, dword [eax + 0x48]
mov eax, 4
sub ecx, 8
shl eax, cl
mov dword [esp + 0x2c], eax
nop dword [eax]
lea ecx, [esp + 0x44cc]
mov ebx, 1
movsx eax, word [ecx + esi*2]
lea ecx, [ecx + esi*2]
sub eax, edx
mov dword [esp + 0x28], ecx
cdq
xor ebp, ebp
mov edi, eax
xor edi, edx
sub edi, edx
cmp dword [esp + 0x6c], ebx
jle 0x100c1695
nop dword [eax + eax]
mov edx, dword [esp + 0x28]
mov esi, edi
movzx ecx, word [esp + ebx*2 + 0x44ec]
movsx eax, word [edx]
sub eax, ecx
mov ecx, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
cmovl edi, eax
cmp eax, esi
cmovge ecx, ebp
inc ebx
mov ebp, ecx
cmp ebx, dword [esp + 0x6c]
jl 0x100c1660
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
cmp edi, dword [esp + 0x2c]
jg 0x100c16a6
mov ax, word [esp + ebp*2 + 0x44ec]
mov word [ecx], ax
mov ebx, dword [esp + 0x18]
add esi, 2
movzx edx, word [esp + 0x44ec]
mov dword [esp + 0x34], esi
lea eax, [ebx + ebx]
cmp esi, eax
jl 0x100c1630
lea ebp, [ebx + ebx]
xor ebx, ebx
lea eax, [ebp - 2]
test eax, eax
jle 0x100c1764
movzx eax, word [esp + ebx*2 + 0x44cc]
mov edi, ebx
mov ecx, eax
movsx esi, ax
lea eax, [ebx + 2]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], eax
mov edx, eax
cmp eax, ebp
jge 0x100c1757
movsx ecx, word [esp + edx*2 + 0x44cc]
mov eax, edx
cmp ecx, esi
cmovge eax, edi
add edx, 2
cmp ecx, esi
mov edi, eax
cmovge ecx, esi
mov esi, ecx
cmp edx, ebp
jl 0x100c16f4
cmp edi, ebx
je 0x100c1753
movzx eax, word [esp + edi*2 + 0x44cc]
movzx ecx, word [esp + ebx*2 + 0x44ce]
mov word [esp + ebx*2 + 0x44cc], ax
movzx eax, word [esp + edi*2 + 0x44ce]
mov word [esp + ebx*2 + 0x44ce], ax
mov eax, dword [esp + 0x2c]
mov word [esp + edi*2 + 0x44cc], ax
mov word [esp + edi*2 + 0x44ce], cx
mov eax, dword [esp + 0x28]
mov ebx, eax
lea eax, [ebp - 2]
cmp ebx, eax
jl 0x100c16d4
push dword [esp + 0x18]
mov esi, dword [esp + 0x44]
lea eax, [esp + 0x44d0]
push dword [esp + 0x48]
push 0
push esi
push eax
push dword [esp + 0x5c]
call dword [0x10b486b8]
mov ecx, dword [esp + 0x3c]
add esp, 0x18
mov ebp, dword [esp + 0x68]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
cmp ebp, ecx
jne 0x100c17a4
cmp edx, eax
je 0x100c1845
add eax, 0xffffffff
mov dword [esp + 0x80], eax
mov edi, eax
js 0x100c1818
mov eax, ebp
mov ebx, edi
sub eax, ecx
imul ebx, ecx
mov dword [esp + 0x2c], eax
mov eax, ebp
neg eax
mov dword [esp + 0x58], eax
mov eax, edi
imul eax, ebp
add ebx, esi
lea ebp, [eax + esi]
lea esi, [eax + ecx]
add esi, dword [esp + 0x40]
push ecx
push ebx
push ebp
call fcn.105137c0
push dword [esp + 0x38]
movzx eax, byte [esi - 1]
push eax
push esi
call fcn.10513d40
mov ecx, dword [esp + 0x3c]
add esp, 0x18
add ebp, dword [esp + 0x58]
sub ebx, ecx
add esi, dword [esp + 0x58]
sub edi, 1
jns 0x100c17d8
mov eax, dword [esp + 0x80]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
cmp ecx, edx
jge 0x100c1845
imul eax, ebp
mov edi, edx
lea ebx, [eax + esi]
mov esi, ebp
imul esi, ecx
add esi, dword [esp + 0x40]
sub edi, ecx
push ebp
push ebx
push esi
call fcn.105137c0
add esp, 0xc
add esi, ebp
sub edi, 1
jne 0x100c1833
mov ecx, dword [esp + 0x10]
lea ebp, [esp + 0x44cc]
mov eax, dword [esp + 0x18]
mov ebx, 0x10
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], ebp
mov byte [ecx + 0x87], al
test eax, eax
jle 0x100c1932
mov esi, ebx
mov edx, ebp
mov ebx, dword [esp + 0x74]
mov edi, eax
mov ebp, 0xff
nop
cmp byte [ebx + 0x4c], 0
movzx eax, word [edx]
je 0x100c18ee
mov ecx, dword [ebx + 0x48]
cwde
sub ecx, 8
je 0x100c18d6
sub ecx, 2
je 0x100c18b9
sub ecx, 2
jne 0x100c18d6
test eax, eax
jns 0x100c18a7
xor eax, eax
movzx eax, ax
jmp 0x100c190e
cmp eax, 0xfff
mov ecx, 0xfff
cmovg eax, ecx
movzx eax, ax
jmp 0x100c190e
test eax, eax
jns 0x100c18c4
xor eax, eax
movzx eax, ax
jmp 0x100c190e
cmp eax, 0x3ff
mov ecx, 0x3ff
cmovg eax, ecx
movzx eax, ax
jmp 0x100c190e
test eax, eax
jns 0x100c18e1
xor eax, eax
movzx eax, ax
jmp 0x100c190e
cmp eax, 0xff
cmovg eax, ebp
movzx eax, ax
jmp 0x100c190e
cmp ax, bp
jle 0x100c18f8
or cl, 0xff
jmp 0x100c190b
test ax, ax
movzx ecx, al
mov dword [esp + 0x2c], 0
cmovs ecx, dword [esp + 0x2c]
movzx eax, cl
mov ecx, dword [esp + 0x10]
add edx, 4
mov word [esi + ecx + 0x56], ax
add esi, 2
sub edi, 1
jne 0x100c1880
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
add ebx, 0x10
add ebp, 2
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], ebp
cmp ebx, 0x30
jl 0x100c1867
mov eax, dword [esp + 0x3c]
cmp dword [eax + 0x5cfb4], 0
je 0x100c1be2
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x30]
mov dl, byte [ecx + 6]
add ebp, 0x31e8
mov esi, dword [esp + 0x453c]
mov ebx, esi
cmp byte [edi + 0x3adab], 0
mov dh, byte [ecx + 0x87]
mov eax, dword [ecx]
mov edi, dword [esp + 0x30]
mov byte [esp + 0x17], dl
je 0x100c1a7b
cmp byte [eax + 0x10661ea0], 0x40
ja 0x100c1a7b
cmp byte [eax + 0x10661eb8], 0x40
ja 0x100c1a7b
cmp eax, 3
jl 0x100c1a7b
test dl, dl
jne 0x100c1a7b
xor al, al
lea edi, [ecx + 0x56]
cmp al, byte [edi + 0x30]
sbb ecx, ecx
and ecx, 8
add ecx, 0x3c90
cmp al, dh
sbb eax, eax
add ecx, ebp
and eax, 4
mov ebx, dword [eax + ecx]
add ebx, esi
test dh, dh
je 0x100c1a81
mov eax, dword [esp + 0x4c]
movzx esi, byte [edi + 0x31]
mov eax, dword [eax + 0x5b8]
movzx eax, byte [eax]
push eax
push esi
call fcn.100c43e0
mov edi, eax
mov eax, dword [esp + 0x40]
movzx ecx, byte [eax + 0x10661ee8]
lea eax, [esp + 0x4514]
push eax
push 1
push dword [esp + 0x5c]
lea edx, [ecx*8]
sub edx, ecx
add edx, esi
add edi, dword [ebp + edx*4 + 0x31b4]
call fcn.100bc120
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x24]
mov ecx, dword [ecx + 0x3e7a8]
push dword [ecx + 0x48]
push eax
lea eax, [esp + 0x4528]
push eax
lea eax, [esi + 0x56]
push eax
call fcn.100c0fa0
mov ecx, dword [esp + 0x54]
add edi, eax
movzx eax, byte [esi + 0x89]
push 0
push eax
push dword [esp + 0x64]
push 1
push ecx
call fcn.1021e030
mov dl, byte [esp + 0x4f]
add eax, edi
add esp, 0x38
add ebx, eax
jmp 0x100c1a85
mov esi, dword [esp + 0x10]
jmp 0x100c1a89
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
movzx eax, dl
mov cl, byte [eax + 0x1066bf7c]
lea eax, [ecx - 1]
cmp al, 7
ja 0x100c1ab9
cmp dword [esp + 0x38], 3
jl 0x100c1ab9
movzx eax, cl
lea ecx, [eax*8]
sub ecx, eax
movsx eax, byte [esi + 0x51]
add ecx, eax
add ebx, dword [ebp + ecx*4 + 0x2ca8]
mov eax, dword [esp + 0x78]
mov esi, dword [eax + 4]
mov ecx, dword [eax]
mov eax, ebx
imul dword [edi + 0x31cc]
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
sar edx, 9
cmp edx, esi
jg 0x100c1da1
jl 0x100c1aeb
cmp eax, ecx
jae 0x100c1da1
push esi
push ecx
push dword [esp + 0x40]
lea eax, [esp + 0xb0]
push eax
push edi
push dword [esp + 0x50]
call fcn.10222b20
mov ebp, dword [esp + 0xbc]
add esp, 0x18
cmp ebp, 0x7fffffff
je 0x100c1d84
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
add ebx, ebp
mov eax, ebx
imul dword [ecx + 0x31cc]
mov ecx, dword [esp + 0xac]
mov esi, eax
mov eax, dword [esp + 0xb0]
add esi, 0x100
adc edx, 0
shld eax, ecx, 7
shrd esi, edx, 9
shl ecx, 7
sar edx, 9
add esi, ecx
adc edx, eax
mov eax, dword [esp + 0x78]
cmp edx, dword [eax + 4]
jg 0x100c1d84
jl 0x100c1b6d
cmp esi, dword [eax]
jae 0x100c1d84
mov dword [eax], esi
mov ecx, 0x29
mov dword [eax + 4], edx
mov esi, edi
mov edi, dword [esp + 0x90]
mov eax, dword [esp + 0x68]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x1c]
imul eax, esi
push eax
push dword [esp + 0x44]
push dword [esp + 0x94]
call fcn.105137c0
mov eax, dword [esp + 0xa0]
add esp, 0xc
mov ecx, dword [esp + 0x98]
mov dword [eax], ebx
mov eax, dword [esp + 0xac]
mov dword [ecx], eax
mov eax, dword [esp + 0xb0]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov dword [eax], ebp
mov al, byte [esp + 0xc4]
mov byte [ecx], al
jmp 0x100c1d88
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x30]
push dword [ecx + 4]
push dword [ecx]
lea ecx, [esp + 0xac]
push dword [esp + 0x40]
push ecx
push edi
push eax
call fcn.10222b20
mov ebp, dword [esp + 0xbc]
add esp, 0x18
cmp ebp, 0x7fffffff
je 0x100c1d84
mov ecx, dword [esp + 0x10]
lea esi, [edi + 0x31e8]
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x453c]
mov dl, byte [ecx + 6]
cmp byte [edi + 0x3adab], 0
mov dh, byte [ecx + 0x87]
mov eax, dword [ecx]
mov byte [esp + 0x17], dl
je 0x100c1d43
cmp byte [eax + 0x10661ea0], 0x40
ja 0x100c1d43
cmp byte [eax + 0x10661eb8], 0x40
ja 0x100c1d43
cmp eax, 3
jl 0x100c1d43
test dl, dl
jne 0x100c1d43
xor al, al
lea edi, [ecx + 0x56]
cmp al, byte [edi + 0x30]
sbb ecx, ecx
and ecx, 8
add ecx, 0x3c90
cmp al, dh
sbb eax, eax
add ecx, esi
and eax, 4
mov ebx, dword [eax + ecx]
add ebx, dword [esp + 0x453c]
test dh, dh
je 0x100c1d43
mov ebp, dword [esp + 0x4c]
movzx esi, byte [edi + 0x31]
mov eax, dword [ebp + 0x5b8]
movzx eax, byte [eax]
push eax
push esi
call fcn.100c43e0
mov edi, eax
mov eax, dword [esp + 0x40]
movzx ecx, byte [eax + 0x10661ee8]
lea eax, [esp + 0x4514]
push eax
push 1
push ebp
lea edx, [ecx*8]
sub edx, ecx
add edx, esi
mov esi, dword [esp + 0x44]
add esi, 0x31e8
add edi, dword [esi + edx*4 + 0x31b4]
call fcn.100bc120
mov ecx, dword [esp + 0x50]
mov ebp, dword [esp + 0x24]
mov ecx, dword [ecx + 0x3e7a8]
push dword [ecx + 0x48]
push eax
lea eax, [esp + 0x4528]
push eax
lea eax, [ebp + 0x56]
push eax
call fcn.100c0fa0
push 0
add edi, eax
movzx eax, byte [ebp + 0x89]
push eax
push dword [esp + 0x64]
push 1
push dword [esp + 0x64]
call fcn.1021e030
mov ebp, dword [esp + 0xdc]
add eax, edi
mov dl, byte [esp + 0x4f]
add esp, 0x38
add ebx, eax
movzx eax, dl
mov cl, byte [eax + 0x1066bf7c]
lea eax, [ecx - 1]
cmp al, 7
ja 0x100c1b19
cmp dword [esp + 0x38], 3
jl 0x100c1b19
mov edi, dword [esp + 0x10]
movzx eax, cl
lea ecx, [eax*8]
sub ecx, eax
movsx eax, byte [edi + 0x51]
add ecx, eax
add ebx, dword [esi + ecx*4 + 0x2ca8]
jmp 0x100c1b1d
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
inc ebx
mov dword [esp + 0x18], ebx
cmp ebx, dword [esp + 0x54]
jle 0x100c1560
jmp 0x100c1da5
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x90]
cmp byte [eax + 0x87], 0
jbe 0x100c1dd0
mov eax, dword [esp + 0x68]
imul eax, esi
push eax
push dword [esp + 0x90]
push dword [esp + 0x48]
call fcn.105137c0
add esp, 0xc
mov ecx, dword [esp + 0x452c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.105116c0
add esp, 0x4520
ret