Function at 0x10194240
Capabilities:
Inspect section memory permissions

Disassembly:
mov eax, 0x1430
call fcn.1019e0f0
mov eax, dword [0x1020a0c0]
xor eax, esp
mov dword [esp + 0x142c], eax
mov eax, ecx
mov byte [esp + 2], 0
xor ecx, ecx
mov dword [esp + 4], eax
push ebx
push ebp
push esi
mov esi, dword [eax]
mov ebx, edx
mov word [esp + 0x14], cx
xor edx, edx
mov byte [esp + 0x16], cl
xor ebp, ebp
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [eax + 8], ecx
mov dword [eax + 4], ecx
mov dword [eax + 0xc], ecx
mov ecx, esi
push edi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x13], 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], 1
call fcn.10192da0
test eax, eax
je 0x1019454f
cmp ebx, 1
je 0x10195084
mov ecx, esi
call fcn.101919e0
mov ecx, esi
mov ebx, eax
call fcn.101919e0
shl ebx, 0x10
mov ecx, esi
add ebx, eax
call fcn.101919e0
mov ecx, esi
mov edi, eax
call fcn.101919e0
shl edi, 0x10
add eax, edi
cmp eax, 0x49484452
ja 0x10194969
je 0x101945cc
cmp eax, 0x43674249
je 0x10194597
cmp eax, 0x49444154
je 0x1019447e
cmp eax, 0x49454e44
jne 0x1019497f
cmp dword [esp + 0x20], 0
jne 0x1019454f
cmp dword [esp + 0x30], 0
jne 0x10195084
mov ebp, dword [esp + 0x14]
mov ebx, dword [ebp + 4]
test ebx, ebx
je 0x1019454f
mov edi, dword [esi]
imul edi, dword [ebp + 0x10]
add edi, 7
shr edi, 3
imul edi, dword [esi + 8]
inc edi
imul edi, dword [esi + 4]
push edi
call fcn.101aaab0
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x10195061
mov eax, dword [esp + 0x34]
xor edx, edx
add eax, ebx
mov dword [esp + 0x5c], ecx
cmp dword [esp + 0x3c], edx
mov dword [esp + 0x4c], eax
lea eax, [ecx + edi]
mov dword [esp + 0x58], ecx
sete dl
lea ecx, [esp + 0x48]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 1
call fcn.10192c80
test eax, eax
je 0x10195055
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
sub edi, eax
mov dword [ebp + 8], eax
test eax, eax
je 0x1019454f
push dword [ebp + 4]
call fcn.101a9b5c
mov edx, dword [esp + 0x1448]
add esp, 4
mov dword [ebp + 4], 0
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
cmp edx, eax
jne 0x101943f4
cmp edx, 3
je 0x101943f4
cmp byte [esp + 0x12], 0
je 0x10194d9a
mov bl, byte [esp + 0x13]
test bl, bl
jne 0x101943fe
mov eax, ecx
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
mov dword [esi + 0xc], eax
mov ecx, ebp
push dword [ebp + 0x10]
mov edx, dword [ebp + 8]
push eax
push edi
call fcn.10193f20
test eax, eax
je 0x1019454f
test bl, bl
je 0x10194e2d
mov eax, dword [ebp]
mov ecx, dword [ebp + 0xc]
mov edx, dword [eax + 4]
imul edx, dword [eax]
cmp dword [ebp + 0x10], 0x10
jne 0x10194de5
test edx, edx
je 0x10194e2d
cmp dword [esi + 0xc], 2
jne 0x10194da3
mov di, word [esp + 0x1030]
nop word [eax + eax]
xor ebx, ebx
mov eax, 0xffff
cmp word [ecx], di
cmove eax, ebx
mov word [ecx + 2], ax
add ecx, 4
sub edx, 1
jne 0x10194460
jmp 0x10194e2d
cmp dword [esp + 0x20], 0
jne 0x1019454f
mov al, byte [esp + 0x12]
test al, al
je 0x1019449c
cmp dword [esp + 0x2c], 0
je 0x1019454f
cmp dword [esp + 0x30], 2
je 0x1019506d
mov eax, dword [esp + 0x34]
lea edi, [ebx + eax]
cmp edi, eax
jl 0x1019454f
cmp edi, ebp
jbe 0x101944f7
test ebp, ebp
jne 0x101944cc
mov ebp, 0x1000
cmp ebx, ebp
cmova ebp, ebx
mov dword [esp + 0x28], ebp
cmp edi, ebp
jbe 0x101944da
add ebp, ebp
cmp edi, ebp
ja 0x101944d0
mov dword [esp + 0x28], ebp
push ebp
mov ebp, dword [esp + 0x18]
push dword [ebp + 4]
call fcn.101aaaa5
add esp, 8
test eax, eax
je 0x1019454f
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x34]
jmp 0x101944fb
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebp + 4]
add ecx, eax
cmp dword [esi + 0x10], 0
mov dword [esp + 0x40], ecx
je 0x1019456c
mov ebp, dword [esi + 0xb0]
mov eax, dword [esi + 0xac]
sub ebp, eax
cmp ebp, ebx
jge 0x1019456c
push ebp
push eax
push ecx
call fcn.1019ead0
mov edx, dword [esp + 0x4c]
add esp, 0xc
mov eax, dword [esi + 0x10]
sub ebx, ebp
mov ecx, dword [esi + 0x1c]
add edx, ebp
push ebx
call eax
xor ecx, ecx
cmp eax, ebx
mov eax, dword [esi + 0xb0]
sete cl
mov dword [esi + 0xac], eax
test ecx, ecx
jne 0x1019458e
xor eax, eax
mov ecx, dword [esp + 0x143c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1019d163
add esp, 0x1430
ret 4
mov edx, dword [esi + 0xac]
lea eax, [ebx + edx]
cmp eax, dword [esi + 0xb0]
ja 0x1019454f
push ebx
push edx
push ecx
call fcn.1019ead0
add esp, 0xc
add dword [esi + 0xac], ebx
mov dword [esp + 0x34], edi
jmp 0x10194d83
mov dword [esp + 0x3c], 1
test ebx, ebx
je 0x10194d87
jns 0x101949be
mov eax, dword [esi + 0xb0]
mov ecx, esi
mov dword [esi + 0xac], eax
call fcn.101919e0
mov ecx, esi
call fcn.101919e0
jmp 0x101942c4
cmp dword [esp + 0x20], 0
je 0x1019454f
mov dword [esp + 0x20], 0
cmp ebx, 0xd
jne 0x1019454f
mov ecx, esi
call fcn.101919e0
mov ecx, esi
mov edi, eax
call fcn.101919e0
shl edi, 0x10
mov ecx, esi
add eax, edi
mov dword [esi], eax
call fcn.101919e0
mov ecx, esi
mov edi, eax
call fcn.101919e0
shl edi, 0x10
add eax, edi
mov dword [esi + 4], eax
cmp eax, 0x1000000
ja 0x1019454f
cmp dword [esi], 0x1000000
ja 0x1019454f
mov eax, dword [esi + 0xac]
lea edi, [esi + 0x20]
cmp eax, dword [esi + 0xb0]
jae 0x1019464a
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x101946ab
cmp dword [edi], 0
je 0x101946a9
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea edx, [esi + 0x28]
mov ecx, dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
test eax, eax
jne 0x10194690
mov dword [edi], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
lea eax, [esi + 0x29]
mov byte [esi + 0x28], 0
mov cl, byte [esi + 0x28]
mov dword [esi + 0xac], eax
jmp 0x101946ab
add eax, 0x28
add eax, esi
mov dword [esi + 0xb0], eax
lea eax, [esi + 0x29]
mov cl, byte [esi + 0x28]
mov dword [esi + 0xac], eax
jmp 0x101946ab
xor cl, cl
mov ebx, dword [esp + 0x14]
movzx eax, cl
mov dword [ebx + 0x10], eax
cmp eax, 1
je 0x101946d2
cmp eax, 2
je 0x101946d2
cmp eax, 4
je 0x101946d2
cmp eax, 8
je 0x101946d2
cmp eax, 0x10
jne 0x1019454f
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0xb0]
cmp eax, ecx
jae 0x101946ed
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1019474f
cmp dword [edi], 0
je 0x1019474d
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
mov ecx, dword [esi + 0x1c]
mov edx, ebx
call eax
mov ecx, dword [esi + 0xac]
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x1019472d
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x10194738
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov ebx, dword [esp + 0x14]
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1019474f
xor dl, dl
movzx edx, dl
mov dword [esp + 0x38], edx
cmp edx, 6
ja 0x1019454f
cmp edx, 3
jne 0x10194774
cmp dword [ebx + 0x10], 0x10
je 0x1019454f
mov byte [esp + 0x12], dl
jmp 0x1019477d
test dl, 1
jne 0x1019454f
cmp eax, ecx
jb 0x101947d6
cmp dword [edi], 0
je 0x101948cc
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
mov ecx, dword [esi + 0x1c]
mov edx, ebx
call eax
mov ecx, dword [esi + 0xac]
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x101947c5
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x101947d0
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
test dl, dl
jne 0x1019454f
cmp eax, ecx
jb 0x10194840
cmp dword [edi], 0
je 0x101948cc
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
mov ecx, dword [esi + 0x1c]
mov edx, ebx
call eax
mov ecx, dword [esi + 0xac]
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x1019482f
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x1019483a
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
test dl, dl
jne 0x1019454f
cmp eax, ecx
jae 0x10194860
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x101948ce
cmp dword [edi], 0
je 0x101948cc
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
mov ecx, dword [esi + 0x1c]
mov edx, ebx
call eax
mov ecx, dword [esi + 0xac]
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x101948b0
mov dword [edi], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
mov byte [ebx], 0
mov eax, dword [esi + 0xac]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x101948ce
add eax, 0x28
add eax, esi
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0xac]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x101948ce
xor cl, cl
movzx eax, cl
mov dword [esp + 0x24], eax
cmp eax, 1
ja 0x1019454f
mov ecx, dword [esi]
test ecx, ecx
je 0x1019454f
mov edi, dword [esi + 4]
test edi, edi
je 0x1019454f
xor edx, edx
mov eax, 0x40000000
div ecx
cmp byte [esp + 0x12], 0
jne 0x10194944
mov ecx, dword [esp + 0x38]
mov edx, ecx
shr edx, 2
and ecx, 2
and edx, 1
or ecx, 1
add ecx, edx
xor edx, edx
div ecx
mov dword [esi + 8], ecx
cmp eax, edi
jb 0x1019454f
cmp dword [esp + 0x30], 2
je 0x10195084
mov ecx, esi
call fcn.101919e0
mov ecx, esi
call fcn.101919e0
jmp 0x101942c4
shr eax, 2
mov dword [esi + 8], 1
cmp eax, edi
jb 0x1019454f
mov ecx, esi
call fcn.101919e0
mov ecx, esi
call fcn.101919e0
jmp 0x101942c4
cmp eax, 0x504c5445
je 0x10194b95
cmp eax, 0x74524e53
je 0x10194a14
cmp dword [esp + 0x20], 0
jne 0x1019454f
test eax, 0x20000000
je 0x1019454f
test ebx, ebx
je 0x10194d87
jns 0x101949be
mov eax, dword [esi + 0xb0]
mov ecx, esi
mov dword [esi + 0xac], eax
call fcn.101919e0
mov ecx, esi
call fcn.101919e0
jmp 0x101942c4
cmp dword [esi + 0x10], 0
je 0x101949fb
mov ecx, dword [esi + 0xb0]
mov eax, ecx
sub eax, dword [esi + 0xac]
cmp eax, ebx
jge 0x101949fb
sub ebx, eax
mov dword [esi + 0xac], ecx
mov ecx, dword [esi + 0x1c]
mov edx, ebx
mov eax, dword [esi + 0x14]
call eax
mov ecx, esi
call fcn.101919e0
mov ecx, esi
call fcn.101919e0
jmp 0x101942c4
add dword [esi + 0xac], ebx
mov ecx, esi
call fcn.101919e0
mov ecx, esi
call fcn.101919e0
jmp 0x101942c4
cmp dword [esp + 0x20], 0
jne 0x1019454f
mov eax, dword [esp + 0x14]
cmp dword [eax + 4], 0
jne 0x1019454f
cmp byte [esp + 0x12], 0
je 0x10194b01
cmp dword [esp + 0x30], 2
je 0x1019507d
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x1019454f
cmp ebx, edi
ja 0x1019454f
xor ebp, ebp
mov byte [esp + 0x12], 4
test ebx, ebx
je 0x10194d83
nop word [eax + eax]
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0xb0]
jae 0x10194a89
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x10194aec
cmp dword [esi + 0x20], 0
je 0x10194aea
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea edx, [esi + 0x28]
mov ecx, dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
test eax, eax
jne 0x10194ad1
mov dword [esi + 0x20], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
lea eax, [esi + 0x29]
mov byte [esi + 0x28], 0
mov cl, byte [esi + 0x28]
mov dword [esi + 0xac], eax
jmp 0x10194aec
add eax, 0x28
add eax, esi
mov dword [esi + 0xb0], eax
lea eax, [esi + 0x29]
mov cl, byte [esi + 0x28]
mov dword [esi + 0xac], eax
jmp 0x10194aec
xor cl, cl
mov byte [esp + ebp*4 + 0x103b], cl
inc ebp
cmp ebp, ebx
jb 0x10194a70
jmp 0x10194d83
mov ecx, dword [esi + 8]
test cl, 1
je 0x1019454f
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x1019454f
mov ebx, dword [esp + 0x14]
xor edi, edi
mov byte [esp + 0x13], 1
cmp dword [ebx + 0x10], 0x10
jne 0x10194b59
test ecx, ecx
jle 0x10194d87
mov ecx, esi
call fcn.101919e0
mov word [esp + edi*2 + 0x1030], ax
inc edi
cmp edi, dword [esi + 8]
jl 0x10194b31
mov ecx, esi
call fcn.101919e0
mov ecx, esi
call fcn.101919e0
jmp 0x101942c4
test ecx, ecx
jle 0x10194d87
mov ecx, esi
call fcn.101919e0
mov ecx, dword [ebx + 0x10]
movzx eax, al
movzx ecx, byte [ecx + 0x101fef34]
imul eax, ecx
mov byte [esp + edi + 0x18], al
inc edi
cmp edi, dword [esi + 8]
jl 0x10194b61
mov ecx, esi
call fcn.101919e0
mov ecx, esi
call fcn.101919e0
jmp 0x101942c4
cmp dword [esp + 0x20], 0
jne 0x1019454f
cmp ebx, 0x300
ja 0x1019454f
mov eax, 0xaaaaaaab
mul ebx
mov edi, edx
shr edi, 1
mov dword [esp + 0x2c], edi
lea eax, [edi + edi*2]
cmp eax, ebx
jne 0x1019454f
xor edx, edx
mov dword [esp + 0x40], edx
test edi, edi
je 0x10194d87
lea ebp, [esi + 0x20]
nop word [eax + eax]
mov eax, dword [esi + 0xac]
mov edi, ebp
mov ecx, dword [esi + 0xb0]
cmp eax, ecx
jb 0x10194c43
cmp dword [edi], 0
je 0x10194c63
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
mov ecx, dword [esi + 0x1c]
mov edx, ebx
call eax
mov ecx, dword [esi + 0xac]
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x10194c32
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x10194c3d
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov ebx, dword [esp + 0x40]
mov dl, byte [eax]
inc eax
shl ebx, 2
mov dword [esi + 0xac], eax
mov byte [esp + ebx + 0x1038], dl
cmp eax, ecx
jae 0x10194c72
lea ebp, [esi + 0x20]
jmp 0x10194cc6
lea ebx, [edx*4]
mov byte [esp + ebx + 0x1038], 0
cmp dword [edi], 0
mov ebp, edi
je 0x10194ce8
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea edx, [esi + 0x28]
mov ecx, dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
lea edx, [esi + 0x28]
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], edx
test eax, eax
jne 0x10194cb5
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [edx], al
jmp 0x10194cc0
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
mov byte [esp + ebx + 0x1039], dl
cmp eax, ecx
jae 0x10194cf0
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x10194d61
mov byte [esp + ebx + 0x1039], 0
cmp dword [edi], 0
mov ebp, edi
je 0x10194d5f
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea edx, [esi + 0x28]
mov ecx, dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
lea ecx, [esi + 0x28]
mov dword [esi + 0xac], ecx
test eax, eax
jne 0x10194d43
mov dword [edi], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
mov byte [ecx], 0
mov eax, dword [esi + 0xac]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x10194d61
add eax, 0x28
add eax, esi
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0xac]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x10194d61
xor cl, cl
mov edx, dword [esp + 0x40]
inc edx
mov byte [esp + ebx + 0x103a], cl
mov byte [esp + ebx + 0x103b], 0xff
mov dword [esp + 0x40], edx
cmp edx, dword [esp + 0x2c]
jb 0x10194be0
mov ebp, dword [esp + 0x28]
mov ecx, esi
call fcn.101919e0
mov ecx, esi
call fcn.101919e0
jmp 0x101942c4
mov bl, byte [esp + 0x13]
jmp 0x101943fe
mov ax, word [esp + 0x1034]
mov edi, dword [esp + 0x1032]
mov bx, word [esp + 0x1030]
nop word [eax + eax]
cmp word [ecx], bx
jne 0x10194dd7
cmp word [ecx + 2], di
jne 0x10194dd7
cmp word [ecx + 4], ax
jne 0x10194dd7
xor ebp, ebp
mov word [ecx + 6], bp
add ecx, 8
sub edx, 1
jne 0x10194dc0
mov ebp, dword [esp + 0x14]
jmp 0x10194e2d
test edx, edx
je 0x10194e2d
cmp dword [esi + 0xc], 2
jne 0x10194e07
mov bl, byte [esp + 0x18]
cmp byte [ecx], bl
sete al
dec al
mov byte [ecx + 1], al
add ecx, 2
sub edx, 1
jne 0x10194df3
jmp 0x10194e2d
mov al, byte [esp + 0x1a]
mov bl, byte [esp + 0x19]
mov ah, byte [esp + 0x18]
cmp byte [ecx], ah
jne 0x10194e25
cmp byte [ecx + 1], bl
jne 0x10194e25
cmp byte [ecx + 2], al
jne 0x10194e25
mov byte [ecx + 3], 0
add ecx, 4
sub edx, 1
jne 0x10194e13
cmp dword [esp + 0x3c], 0
je 0x10194f18
cmp dword [0x104e4814], 0
je 0x10194f18
cmp dword [esi + 0xc], 2
jle 0x10194f18
mov eax, dword [ebp]
mov ebp, dword [ebp + 0xc]
mov edx, dword [eax + 4]
imul edx, dword [eax]
mov dword [esp + 0x24], edx
test edx, edx
je 0x10194f14
cmp dword [eax + 0xc], 3
jne 0x10194e89
nop dword [eax]
mov cl, byte [ebp]
lea ebp, [ebp + 3]
mov al, byte [ebp - 1]
mov byte [ebp - 3], al
mov byte [ebp - 1], cl
sub edx, 1
jne 0x10194e70
jmp 0x10194f14
cmp dword [0x104e488c], 0
je 0x10194f00
mov al, byte [ebp + 3]
mov cl, byte [ebp]
mov ch, byte [ebp + 2]
test al, al
je 0x10194ee5
movzx ebx, al
xor edx, edx
movzx eax, byte [ebp + 1]
mov edi, ebx
imul eax, eax, 0xff
shr edi, 1
add eax, edi
div ebx
xor edx, edx
mov byte [ebp + 1], al
movzx eax, cl
imul eax, eax, 0xff
movzx ecx, ch
add eax, edi
div ebx
xor edx, edx
mov byte [esp + 0x1f], al
imul eax, ecx, 0xff
mov cl, byte [esp + 0x1f]
add eax, edi
div ebx
mov edx, dword [esp + 0x24]
mov ch, al
mov byte [ebp], ch
mov byte [ebp + 2], cl
add ebp, 4
sub edx, 1
mov dword [esp + 0x24], edx
jne 0x10194e92
jmp 0x10194f14
mov cl, byte [ebp]
lea ebp, [ebp + 4]
mov al, byte [ebp - 2]
mov byte [ebp - 4], al
mov byte [ebp - 2], cl
sub edx, 1
jne 0x10194f00
mov ebp, dword [esp + 0x14]
mov al, byte [esp + 0x12]
test al, al
je 0x10195021
movzx edi, al
mov eax, dword [esp + 0x1444]
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
cmp eax, 3
jl 0x10194f3e
mov dword [esi + 0xc], eax
mov edi, eax
mov eax, dword [ebp]
mov ebp, dword [ebp + 0xc]
mov ebx, dword [eax + 4]
imul ebx, dword [eax]
test ebx, ebx
js 0x1019454f
test edi, edi
js 0x1019454f
mov ecx, ebx
jne 0x10194f63
imul ecx, edi
jmp 0x10194f76
mov eax, 0x7fffffff
imul ecx, edi
cdq
idiv edi
cmp ebx, eax
jg 0x1019454f
push ecx
call fcn.101aaab0
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x1019454f
cmp edi, 3
jne 0x10194fcc
xor edi, edi
test ebx, ebx
je 0x10195009
lea edx, [eax + 2]
nop dword [eax]
movzx ecx, byte [edi + ebp]
lea edx, [edx + 3]
inc edi
mov al, byte [esp + ecx*4 + 0x1038]
mov byte [edx - 5], al
mov al, byte [esp + ecx*4 + 0x1039]
mov byte [edx - 4], al
mov al, byte [esp + ecx*4 + 0x103a]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x10194fa0
jmp 0x10195009
xor edi, edi
test ebx, ebx
je 0x10195009
lea edx, [eax + 2]
movzx ecx, byte [edi + ebp]
lea edx, [edx + 4]
inc edi
mov al, byte [esp + ecx*4 + 0x1038]
mov byte [edx - 6], al
mov al, byte [esp + ecx*4 + 0x1039]
mov byte [edx - 5], al
mov al, byte [esp + ecx*4 + 0x103a]
mov byte [edx - 4], al
mov al, byte [esp + ecx*4 + 0x103b]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x10194fd5
mov ebp, dword [esp + 0x14]
push dword [ebp + 0xc]
call fcn.101a9b5c
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [ebp + 0xc], eax
jmp 0x1019502b
cmp byte [esp + 0x13], 0
je 0x1019502b
inc dword [esi + 8]
push dword [ebp + 8]
call fcn.101a9b5c
add esp, 4
mov dword [ebp + 8], 0
mov ecx, esi
call fcn.101919e0
mov ecx, esi
call fcn.101919e0
mov eax, 1
jmp 0x10194551
push dword [esp + 0x5c]
call fcn.101a9b5c
add esp, 4
mov dword [ebp + 8], 0
jmp 0x1019454f
movzx eax, al
mov dword [esi + 8], eax
mov eax, 1
jmp 0x10194551
mov dword [esi + 8], 4
mov eax, 1
jmp 0x10194551