Function at 0x10197220
Capabilities:
Inspect section memory permissions

Disassembly:
mov eax, 0x1430
call fcn.101a10d0
mov eax, dword [0x1020c0c0]
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.10195d80
test eax, eax
je 0x1019752f
cmp ebx, 1
je 0x10198064
mov ecx, esi
call fcn.101949c0
mov ecx, esi
mov ebx, eax
call fcn.101949c0
shl ebx, 0x10
mov ecx, esi
add ebx, eax
call fcn.101949c0
mov ecx, esi
mov edi, eax
call fcn.101949c0
shl edi, 0x10
add eax, edi
cmp eax, 0x49484452
ja 0x10197949
je 0x101975ac
cmp eax, 0x43674249
je 0x10197577
cmp eax, 0x49444154
je 0x1019745e
cmp eax, 0x49454e44
jne 0x1019795f
cmp dword [esp + 0x20], 0
jne 0x1019752f
cmp dword [esp + 0x30], 0
jne 0x10198064
mov ebp, dword [esp + 0x14]
mov ebx, dword [ebp + 4]
test ebx, ebx
je 0x1019752f
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.101ada95
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x10198041
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.10195c60
test eax, eax
je 0x10198035
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
sub edi, eax
mov dword [ebp + 8], eax
test eax, eax
je 0x1019752f
push dword [ebp + 4]
call fcn.101acb3c
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 0x101973d4
cmp edx, 3
je 0x101973d4
cmp byte [esp + 0x12], 0
je 0x10197d7a
mov bl, byte [esp + 0x13]
test bl, bl
jne 0x101973de
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.10196f00
test eax, eax
je 0x1019752f
test bl, bl
je 0x10197e0d
mov eax, dword [ebp]
mov ecx, dword [ebp + 0xc]
mov edx, dword [eax + 4]
imul edx, dword [eax]
cmp dword [ebp + 0x10], 0x10
jne 0x10197dc5
test edx, edx
je 0x10197e0d
cmp dword [esi + 0xc], 2
jne 0x10197d83
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 0x10197440
jmp 0x10197e0d
cmp dword [esp + 0x20], 0
jne 0x1019752f
mov al, byte [esp + 0x12]
test al, al
je 0x1019747c
cmp dword [esp + 0x2c], 0
je 0x1019752f
cmp dword [esp + 0x30], 2
je 0x1019804d
mov eax, dword [esp + 0x34]
lea edi, [ebx + eax]
cmp edi, eax
jl 0x1019752f
cmp edi, ebp
jbe 0x101974d7
test ebp, ebp
jne 0x101974ac
mov ebp, 0x1000
cmp ebx, ebp
cmova ebp, ebx
mov dword [esp + 0x28], ebp
cmp edi, ebp
jbe 0x101974ba
add ebp, ebp
cmp edi, ebp
ja 0x101974b0
mov dword [esp + 0x28], ebp
push ebp
mov ebp, dword [esp + 0x18]
push dword [ebp + 4]
call fcn.101ad3e9
add esp, 8
test eax, eax
je 0x1019752f
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x34]
jmp 0x101974db
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebp + 4]
add ecx, eax
cmp dword [esi + 0x10], 0
mov dword [esp + 0x40], ecx
je 0x1019754c
mov ebp, dword [esi + 0xb0]
mov eax, dword [esi + 0xac]
sub ebp, eax
cmp ebp, ebx
jge 0x1019754c
push ebp
push eax
push ecx
call fcn.101a1ab0
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 0x1019756e
xor eax, eax
mov ecx, dword [esp + 0x143c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101a0143
add esp, 0x1430
ret 4
mov edx, dword [esi + 0xac]
lea eax, [ebx + edx]
cmp eax, dword [esi + 0xb0]
ja 0x1019752f
push ebx
push edx
push ecx
call fcn.101a1ab0
add esp, 0xc
add dword [esi + 0xac], ebx
mov dword [esp + 0x34], edi
jmp 0x10197d63
mov dword [esp + 0x3c], 1
test ebx, ebx
je 0x10197d67
jns 0x1019799e
mov eax, dword [esi + 0xb0]
mov ecx, esi
mov dword [esi + 0xac], eax
call fcn.101949c0
mov ecx, esi
call fcn.101949c0
jmp 0x101972a4
cmp dword [esp + 0x20], 0
je 0x1019752f
mov dword [esp + 0x20], 0
cmp ebx, 0xd
jne 0x1019752f
mov ecx, esi
call fcn.101949c0
mov ecx, esi
mov edi, eax
call fcn.101949c0
shl edi, 0x10
mov ecx, esi
add eax, edi
mov dword [esi], eax
call fcn.101949c0
mov ecx, esi
mov edi, eax
call fcn.101949c0
shl edi, 0x10
add eax, edi
mov dword [esi + 4], eax
cmp eax, 0x1000000
ja 0x1019752f
cmp dword [esi], 0x1000000
ja 0x1019752f
mov eax, dword [esi + 0xac]
lea edi, [esi + 0x20]
cmp eax, dword [esi + 0xb0]
jae 0x1019762a
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1019768b
cmp dword [edi], 0
je 0x10197689
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 0x10197670
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 0x1019768b
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 0x1019768b
xor cl, cl
mov ebx, dword [esp + 0x14]
movzx eax, cl
mov dword [ebx + 0x10], eax
cmp eax, 1
je 0x101976b2
cmp eax, 2
je 0x101976b2
cmp eax, 4
je 0x101976b2
cmp eax, 8
je 0x101976b2
cmp eax, 0x10
jne 0x1019752f
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0xb0]
cmp eax, ecx
jae 0x101976cd
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1019772f
cmp dword [edi], 0
je 0x1019772d
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 0x1019770d
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x10197718
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 0x1019772f
xor dl, dl
movzx edx, dl
mov dword [esp + 0x38], edx
cmp edx, 6
ja 0x1019752f
cmp edx, 3
jne 0x10197754
cmp dword [ebx + 0x10], 0x10
je 0x1019752f
mov byte [esp + 0x12], dl
jmp 0x1019775d
test dl, 1
jne 0x1019752f
cmp eax, ecx
jb 0x101977b6
cmp dword [edi], 0
je 0x101978ac
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 0x101977a5
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x101977b0
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 0x1019752f
cmp eax, ecx
jb 0x10197820
cmp dword [edi], 0
je 0x101978ac
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 0x1019780f
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x1019781a
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 0x1019752f
cmp eax, ecx
jae 0x10197840
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x101978ae
cmp dword [edi], 0
je 0x101978ac
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 0x10197890
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 0x101978ae
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 0x101978ae
xor cl, cl
movzx eax, cl
mov dword [esp + 0x24], eax
cmp eax, 1
ja 0x1019752f
mov ecx, dword [esi]
test ecx, ecx
je 0x1019752f
mov edi, dword [esi + 4]
test edi, edi
je 0x1019752f
xor edx, edx
mov eax, 0x40000000
div ecx
cmp byte [esp + 0x12], 0
jne 0x10197924
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 0x1019752f
cmp dword [esp + 0x30], 2
je 0x10198064
mov ecx, esi
call fcn.101949c0
mov ecx, esi
call fcn.101949c0
jmp 0x101972a4
shr eax, 2
mov dword [esi + 8], 1
cmp eax, edi
jb 0x1019752f
mov ecx, esi
call fcn.101949c0
mov ecx, esi
call fcn.101949c0
jmp 0x101972a4
cmp eax, 0x504c5445
je 0x10197b75
cmp eax, 0x74524e53
je 0x101979f4
cmp dword [esp + 0x20], 0
jne 0x1019752f
test eax, 0x20000000
je 0x1019752f
test ebx, ebx
je 0x10197d67
jns 0x1019799e
mov eax, dword [esi + 0xb0]
mov ecx, esi
mov dword [esi + 0xac], eax
call fcn.101949c0
mov ecx, esi
call fcn.101949c0
jmp 0x101972a4
cmp dword [esi + 0x10], 0
je 0x101979db
mov ecx, dword [esi + 0xb0]
mov eax, ecx
sub eax, dword [esi + 0xac]
cmp eax, ebx
jge 0x101979db
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.101949c0
mov ecx, esi
call fcn.101949c0
jmp 0x101972a4
add dword [esi + 0xac], ebx
mov ecx, esi
call fcn.101949c0
mov ecx, esi
call fcn.101949c0
jmp 0x101972a4
cmp dword [esp + 0x20], 0
jne 0x1019752f
mov eax, dword [esp + 0x14]
cmp dword [eax + 4], 0
jne 0x1019752f
cmp byte [esp + 0x12], 0
je 0x10197ae1
cmp dword [esp + 0x30], 2
je 0x1019805d
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x1019752f
cmp ebx, edi
ja 0x1019752f
xor ebp, ebp
mov byte [esp + 0x12], 4
test ebx, ebx
je 0x10197d63
nop word [eax + eax]
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0xb0]
jae 0x10197a69
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x10197acc
cmp dword [esi + 0x20], 0
je 0x10197aca
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 0x10197ab1
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 0x10197acc
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 0x10197acc
xor cl, cl
mov byte [esp + ebp*4 + 0x103b], cl
inc ebp
cmp ebp, ebx
jb 0x10197a50
jmp 0x10197d63
mov ecx, dword [esi + 8]
test cl, 1
je 0x1019752f
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x1019752f
mov ebx, dword [esp + 0x14]
xor edi, edi
mov byte [esp + 0x13], 1
cmp dword [ebx + 0x10], 0x10
jne 0x10197b39
test ecx, ecx
jle 0x10197d67
mov ecx, esi
call fcn.101949c0
mov word [esp + edi*2 + 0x1030], ax
inc edi
cmp edi, dword [esi + 8]
jl 0x10197b11
mov ecx, esi
call fcn.101949c0
mov ecx, esi
call fcn.101949c0
jmp 0x101972a4
test ecx, ecx
jle 0x10197d67
mov ecx, esi
call fcn.101949c0
mov ecx, dword [ebx + 0x10]
movzx eax, al
movzx ecx, byte [ecx + 0x10201e54]
imul eax, ecx
mov byte [esp + edi + 0x18], al
inc edi
cmp edi, dword [esi + 8]
jl 0x10197b41
mov ecx, esi
call fcn.101949c0
mov ecx, esi
call fcn.101949c0
jmp 0x101972a4
cmp dword [esp + 0x20], 0
jne 0x1019752f
cmp ebx, 0x300
ja 0x1019752f
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 0x1019752f
xor edx, edx
mov dword [esp + 0x40], edx
test edi, edi
je 0x10197d67
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 0x10197c23
cmp dword [edi], 0
je 0x10197c43
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 0x10197c12
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x10197c1d
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 0x10197c52
lea ebp, [esi + 0x20]
jmp 0x10197ca6
lea ebx, [edx*4]
mov byte [esp + ebx + 0x1038], 0
cmp dword [edi], 0
mov ebp, edi
je 0x10197cc8
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 0x10197c95
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [edx], al
jmp 0x10197ca0
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 0x10197cd0
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x10197d41
mov byte [esp + ebx + 0x1039], 0
cmp dword [edi], 0
mov ebp, edi
je 0x10197d3f
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 0x10197d23
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 0x10197d41
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 0x10197d41
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 0x10197bc0
mov ebp, dword [esp + 0x28]
mov ecx, esi
call fcn.101949c0
mov ecx, esi
call fcn.101949c0
jmp 0x101972a4
mov bl, byte [esp + 0x13]
jmp 0x101973de
mov ax, word [esp + 0x1034]
mov edi, dword [esp + 0x1032]
mov bx, word [esp + 0x1030]
nop word [eax + eax]
cmp word [ecx], bx
jne 0x10197db7
cmp word [ecx + 2], di
jne 0x10197db7
cmp word [ecx + 4], ax
jne 0x10197db7
xor ebp, ebp
mov word [ecx + 6], bp
add ecx, 8
sub edx, 1
jne 0x10197da0
mov ebp, dword [esp + 0x14]
jmp 0x10197e0d
test edx, edx
je 0x10197e0d
cmp dword [esi + 0xc], 2
jne 0x10197de7
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 0x10197dd3
jmp 0x10197e0d
mov al, byte [esp + 0x1a]
mov bl, byte [esp + 0x19]
mov ah, byte [esp + 0x18]
cmp byte [ecx], ah
jne 0x10197e05
cmp byte [ecx + 1], bl
jne 0x10197e05
cmp byte [ecx + 2], al
jne 0x10197e05
mov byte [ecx + 3], 0
add ecx, 4
sub edx, 1
jne 0x10197df3
cmp dword [esp + 0x3c], 0
je 0x10197ef8
cmp dword [0x104563f4], 0
je 0x10197ef8
cmp dword [esi + 0xc], 2
jle 0x10197ef8
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 0x10197ef4
cmp dword [eax + 0xc], 3
jne 0x10197e69
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 0x10197e50
jmp 0x10197ef4
cmp dword [0x1045646c], 0
je 0x10197ee0
mov al, byte [ebp + 3]
mov cl, byte [ebp]
mov ch, byte [ebp + 2]
test al, al
je 0x10197ec5
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 0x10197e72
jmp 0x10197ef4
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 0x10197ee0
mov ebp, dword [esp + 0x14]
mov al, byte [esp + 0x12]
test al, al
je 0x10198001
movzx edi, al
mov eax, dword [esp + 0x1444]
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
cmp eax, 3
jl 0x10197f1e
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 0x1019752f
test edi, edi
js 0x1019752f
mov ecx, ebx
jne 0x10197f43
imul ecx, edi
jmp 0x10197f56
mov eax, 0x7fffffff
imul ecx, edi
cdq
idiv edi
cmp ebx, eax
jg 0x1019752f
push ecx
call fcn.101ada95
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x1019752f
cmp edi, 3
jne 0x10197fac
xor edi, edi
test ebx, ebx
je 0x10197fe9
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 0x10197f80
jmp 0x10197fe9
xor edi, edi
test ebx, ebx
je 0x10197fe9
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 0x10197fb5
mov ebp, dword [esp + 0x14]
push dword [ebp + 0xc]
call fcn.101acb3c
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [ebp + 0xc], eax
jmp 0x1019800b
cmp byte [esp + 0x13], 0
je 0x1019800b
inc dword [esi + 8]
push dword [ebp + 8]
call fcn.101acb3c
add esp, 4
mov dword [ebp + 8], 0
mov ecx, esi
call fcn.101949c0
mov ecx, esi
call fcn.101949c0
mov eax, 1
jmp 0x10197531
push dword [esp + 0x5c]
call fcn.101acb3c
add esp, 4
mov dword [ebp + 8], 0
jmp 0x1019752f
movzx eax, al
mov dword [esi + 8], eax
mov eax, 1
jmp 0x10197531
mov dword [esi + 8], 4
mov eax, 1
jmp 0x10197531