Function at 0x100d3610
Capabilities:
Inspect section memory permissions

Disassembly:
mov eax, 0x1428
call fcn.101252b0
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.100d2250
test eax, eax
je 0x100d3923
cmp ebx, 1
je 0x100d4430
mov ecx, esi
call fcn.100d0eb0
mov ecx, esi
mov ebx, eax
call fcn.100d0eb0
shl ebx, 0x10
mov ecx, esi
add ebx, eax
call fcn.100d0eb0
mov ecx, esi
mov edi, eax
call fcn.100d0eb0
shl edi, 0x10
add eax, edi
cmp eax, 0x49484452
ja 0x100d3d2b
je 0x100d3992
cmp eax, 0x43674249
je 0x100d395d
cmp eax, 0x49444154
je 0x100d3852
cmp eax, 0x49454e44
jne 0x100d3d41
cmp dword [esp + 0x20], 0
jne 0x100d3923
cmp dword [esp + 0x30], 0
jne 0x100d4430
mov ebp, dword [esp + 0x14]
mov ebx, dword [ebp + 4]
test ebx, ebx
je 0x100d3923
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.10105fb5
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x100d43fb
mov eax, dword [esp + 0x34]
xor edx, edx
add eax, ebx
mov dword [esp + 0x464], ecx
cmp dword [esp + 0x3c], edx
mov dword [esp + 0x454], eax
lea eax, [ecx + edi]
mov dword [esp + 0x460], ecx
sete dl
lea ecx, [esp + 0x450]
mov dword [esp + 0x450], ebx
mov dword [esp + 0x468], eax
mov dword [esp + 0x46c], 1
call fcn.100d2130
test eax, eax
je 0x100d43ec
mov eax, dword [esp + 0x464]
mov edi, dword [esp + 0x460]
sub edi, eax
mov dword [ebp + 8], eax
test eax, eax
je 0x100d3923
push dword [ebp + 4]
call fcn.10105fcb
mov edx, dword [esp + 0x1440]
add esp, 4
mov dword [ebp + 4], 0
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
cmp edx, eax
jne 0x100d37d1
cmp edx, 3
je 0x100d37d1
cmp byte [esp + 0x12], 0
je 0x100d4148
mov bl, byte [esp + 0x13]
test bl, bl
jne 0x100d37db
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.100d3310
test eax, eax
je 0x100d3923
test bl, bl
je 0x100d41cd
mov eax, dword [ebp]
mov ecx, dword [ebp + 0xc]
mov edx, dword [eax + 4]
imul edx, dword [eax]
cmp dword [ebp + 0x10], 0x10
jne 0x100d4185
test edx, edx
je 0x100d41cd
cmp dword [esi + 0xc], 2
jne 0x100d4151
mov di, word [esp + 0x48]
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 0x100d3834
jmp 0x100d41cd
cmp dword [esp + 0x20], 0
jne 0x100d3923
mov al, byte [esp + 0x12]
test al, al
je 0x100d3870
cmp dword [esp + 0x2c], 0
je 0x100d3923
cmp dword [esp + 0x30], 2
je 0x100d4411
mov eax, dword [esp + 0x34]
lea edi, [ebx + eax]
cmp edi, eax
jl 0x100d3923
cmp edi, ebp
jbe 0x100d38cb
test ebp, ebp
jne 0x100d38a0
mov ebp, 0x1000
cmp ebx, ebp
cmova ebp, ebx
mov dword [esp + 0x28], ebp
cmp edi, ebp
jbe 0x100d38ae
add ebp, ebp
cmp edi, ebp
ja 0x100d38a4
mov dword [esp + 0x28], ebp
push ebp
mov ebp, dword [esp + 0x18]
push dword [ebp + 4]
call fcn.10105fc0
add esp, 8
test eax, eax
je 0x100d3923
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x34]
jmp 0x100d38cf
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebp + 4]
add ecx, eax
cmp dword [esi + 0x10], 0
mov dword [esp + 0x40], ecx
je 0x100d3932
mov ebp, dword [esi + 0xb0]
mov eax, dword [esi + 0xac]
sub ebp, eax
cmp ebp, ebx
jge 0x100d3932
push ebp
push eax
push ecx
call fcn.10101750
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 0x100d3954
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1428
ret 4
mov edx, dword [esi + 0xac]
lea eax, [edx + ebx]
cmp eax, dword [esi + 0xb0]
ja 0x100d3923
push ebx
push edx
push ecx
call fcn.10101750
add esp, 0xc
add dword [esi + 0xac], ebx
mov dword [esp + 0x34], edi
jmp 0x100d4131
mov dword [esp + 0x3c], 1
test ebx, ebx
je 0x100d4135
jns 0x100d3d80
mov eax, dword [esi + 0xb0]
mov ecx, esi
mov dword [esi + 0xac], eax
call fcn.100d0eb0
mov ecx, esi
call fcn.100d0eb0
jmp 0x100d3686
cmp dword [esp + 0x20], 0
je 0x100d3923
mov dword [esp + 0x20], 0
cmp ebx, 0xd
jne 0x100d3923
mov ecx, esi
call fcn.100d0eb0
mov ecx, esi
mov edi, eax
call fcn.100d0eb0
shl edi, 0x10
mov ecx, esi
add eax, edi
mov dword [esi], eax
call fcn.100d0eb0
mov ecx, esi
mov edi, eax
call fcn.100d0eb0
shl edi, 0x10
add eax, edi
mov dword [esi + 4], eax
cmp eax, 0x1000000
ja 0x100d3923
cmp dword [esi], 0x1000000
ja 0x100d3923
mov eax, dword [esi + 0xac]
lea edi, [esi + 0x20]
cmp eax, dword [esi + 0xb0]
jae 0x100d3a0c
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x100d3a6d
cmp dword [edi], 0
je 0x100d3a6b
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 0x100d3a52
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 0x100d3a6d
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 0x100d3a6d
xor cl, cl
mov ebx, dword [esp + 0x14]
movzx eax, cl
mov dword [ebx + 0x10], eax
cmp eax, 1
je 0x100d3a94
cmp eax, 2
je 0x100d3a94
cmp eax, 4
je 0x100d3a94
cmp eax, 8
je 0x100d3a94
cmp eax, 0x10
jne 0x100d3923
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0xb0]
cmp eax, ecx
jae 0x100d3aaf
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x100d3b11
cmp dword [edi], 0
je 0x100d3b0f
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 0x100d3aef
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x100d3afa
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 0x100d3b11
xor dl, dl
movzx edx, dl
mov dword [esp + 0x38], edx
cmp edx, 6
ja 0x100d3923
cmp edx, 3
jne 0x100d3b36
cmp dword [ebx + 0x10], 0x10
je 0x100d3923
mov byte [esp + 0x12], dl
jmp 0x100d3b3f
test dl, 1
jne 0x100d3923
cmp eax, ecx
jb 0x100d3b98
cmp dword [edi], 0
je 0x100d3c8e
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 0x100d3b87
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x100d3b92
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 0x100d3923
cmp eax, ecx
jb 0x100d3c02
cmp dword [edi], 0
je 0x100d3c8e
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 0x100d3bf1
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x100d3bfc
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 0x100d3923
cmp eax, ecx
jae 0x100d3c22
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x100d3c90
cmp dword [edi], 0
je 0x100d3c8e
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 0x100d3c72
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 0x100d3c90
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 0x100d3c90
xor cl, cl
movzx eax, cl
mov dword [esp + 0x24], eax
cmp eax, 1
ja 0x100d3923
mov ecx, dword [esi]
test ecx, ecx
je 0x100d3923
mov edi, dword [esi + 4]
test edi, edi
je 0x100d3923
xor edx, edx
mov eax, 0x40000000
div ecx
cmp byte [esp + 0x12], 0
jne 0x100d3d06
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 0x100d3923
cmp dword [esp + 0x30], 2
je 0x100d4430
mov ecx, esi
call fcn.100d0eb0
mov ecx, esi
call fcn.100d0eb0
jmp 0x100d3686
shr eax, 2
mov dword [esi + 8], 1
cmp eax, edi
jb 0x100d3923
mov ecx, esi
call fcn.100d0eb0
mov ecx, esi
call fcn.100d0eb0
jmp 0x100d3686
cmp eax, 0x504c5445
je 0x100d3f54
cmp eax, 0x74524e53
je 0x100d3dd6
cmp dword [esp + 0x20], 0
jne 0x100d3923
test eax, 0x20000000
je 0x100d3923
test ebx, ebx
je 0x100d4135
jns 0x100d3d80
mov eax, dword [esi + 0xb0]
mov ecx, esi
mov dword [esi + 0xac], eax
call fcn.100d0eb0
mov ecx, esi
call fcn.100d0eb0
jmp 0x100d3686
cmp dword [esi + 0x10], 0
je 0x100d3dbd
mov ecx, dword [esi + 0xb0]
mov eax, ecx
sub eax, dword [esi + 0xac]
cmp eax, ebx
jge 0x100d3dbd
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.100d0eb0
mov ecx, esi
call fcn.100d0eb0
jmp 0x100d3686
add dword [esi + 0xac], ebx
mov ecx, esi
call fcn.100d0eb0
mov ecx, esi
call fcn.100d0eb0
jmp 0x100d3686
cmp dword [esp + 0x20], 0
jne 0x100d3923
mov eax, dword [esp + 0x14]
cmp dword [eax + 4], 0
jne 0x100d3923
cmp byte [esp + 0x12], 0
je 0x100d3ebe
cmp dword [esp + 0x30], 2
je 0x100d4429
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x100d3923
cmp ebx, edi
ja 0x100d3923
xor ebp, ebp
mov byte [esp + 0x12], 4
test ebx, ebx
je 0x100d4131
nop dword [eax + eax]
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0xb0]
jae 0x100d3e49
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x100d3eac
cmp dword [esi + 0x20], 0
je 0x100d3eaa
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 0x100d3e91
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 0x100d3eac
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 0x100d3eac
xor cl, cl
mov byte [esp + ebp*4 + 0x53], cl
inc ebp
cmp ebp, ebx
jb 0x100d3e30
jmp 0x100d4131
mov ecx, dword [esi + 8]
test cl, 1
je 0x100d3923
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x100d3923
mov ebx, dword [esp + 0x14]
xor edi, edi
mov byte [esp + 0x13], 1
cmp dword [ebx + 0x10], 0x10
jne 0x100d3f15
test ecx, ecx
jle 0x100d4135
nop
mov ecx, esi
call fcn.100d0eb0
mov word [esp + edi*2 + 0x48], ax
inc edi
cmp edi, dword [esi + 8]
jl 0x100d3ef0
mov ecx, esi
call fcn.100d0eb0
mov ecx, esi
call fcn.100d0eb0
jmp 0x100d3686
test ecx, ecx
jle 0x100d4135
nop dword [eax]
mov ecx, esi
call fcn.100d0eb0
mov ecx, dword [ebx + 0x10]
movzx eax, al
movzx ecx, byte [ecx + 0x101482e8]
imul eax, ecx
mov byte [esp + edi + 0x18], al
inc edi
cmp edi, dword [esi + 8]
jl 0x100d3f20
mov ecx, esi
call fcn.100d0eb0
mov ecx, esi
call fcn.100d0eb0
jmp 0x100d3686
cmp dword [esp + 0x20], 0
jne 0x100d3923
cmp ebx, 0x300
ja 0x100d3923
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 0x100d3923
xor edx, edx
mov dword [esp + 0x40], edx
test edi, edi
je 0x100d4135
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 0x100d4003
cmp dword [edi], 0
je 0x100d4020
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 0x100d3ff2
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x100d3ffd
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 + 0x50], dl
cmp eax, ecx
jae 0x100d402c
lea ebp, [esi + 0x20]
jmp 0x100d4080
lea ebx, [edx*4]
mov byte [esp + ebx + 0x50], 0
cmp dword [edi], 0
mov ebp, edi
je 0x100d409f
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 0x100d406f
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [edx], al
jmp 0x100d407a
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 + 0x51], dl
cmp eax, ecx
jae 0x100d40a4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x100d4115
mov byte [esp + ebx + 0x51], 0
cmp dword [edi], 0
mov ebp, edi
je 0x100d4113
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 0x100d40f7
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 0x100d4115
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 0x100d4115
xor cl, cl
mov edx, dword [esp + 0x40]
inc edx
mov byte [esp + ebx + 0x52], cl
mov byte [esp + ebx + 0x53], 0xff
mov dword [esp + 0x40], edx
cmp edx, dword [esp + 0x2c]
jb 0x100d3fa0
mov ebp, dword [esp + 0x28]
mov ecx, esi
call fcn.100d0eb0
mov ecx, esi
call fcn.100d0eb0
jmp 0x100d3686
mov bl, byte [esp + 0x13]
jmp 0x100d37db
mov ax, word [esp + 0x4c]
mov edi, dword [esp + 0x4a]
mov bx, word [esp + 0x48]
nop
cmp word [ecx], bx
jne 0x100d4177
cmp word [ecx + 2], di
jne 0x100d4177
cmp word [ecx + 4], ax
jne 0x100d4177
xor ebp, ebp
mov word [ecx + 6], bp
add ecx, 8
sub edx, 1
jne 0x100d4160
mov ebp, dword [esp + 0x14]
jmp 0x100d41cd
test edx, edx
je 0x100d41cd
cmp dword [esi + 0xc], 2
jne 0x100d41a7
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 0x100d4193
jmp 0x100d41cd
mov al, byte [esp + 0x1a]
mov bl, byte [esp + 0x19]
mov ah, byte [esp + 0x18]
cmp byte [ecx], ah
jne 0x100d41c5
cmp byte [ecx + 1], bl
jne 0x100d41c5
cmp byte [ecx + 2], al
jne 0x100d41c5
mov byte [ecx + 3], 0
add ecx, 4
sub edx, 1
jne 0x100d41b3
cmp dword [esp + 0x3c], 0
je 0x100d42b8
cmp dword [0x1015ba40], 0
je 0x100d42b8
cmp dword [esi + 0xc], 2
jle 0x100d42b8
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 0x100d42b4
cmp dword [eax + 0xc], 3
jne 0x100d4229
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 0x100d4210
jmp 0x100d42b4
cmp dword [0x1015ba3c], 0
je 0x100d42a0
mov al, byte [ebp + 3]
mov cl, byte [ebp]
mov ch, byte [ebp + 2]
test al, al
je 0x100d4285
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 0x100d4232
jmp 0x100d42b4
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 0x100d42a0
mov ebp, dword [esp + 0x14]
mov al, byte [esp + 0x12]
test al, al
je 0x100d43b0
movzx edi, al
mov eax, dword [esp + 0x143c]
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
cmp eax, 3
jl 0x100d42de
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 0x100d3923
test edi, edi
js 0x100d3923
mov ecx, ebx
jne 0x100d4303
imul ecx, edi
jmp 0x100d4316
mov eax, 0x7fffffff
imul ecx, edi
cdq
idiv edi
cmp ebx, eax
jg 0x100d3923
push ecx
call fcn.10105fb5
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x100d3923
cmp edi, 3
jne 0x100d4363
xor edi, edi
test ebx, ebx
je 0x100d4398
lea edx, [eax + 2]
nop dword [eax]
movzx ecx, byte [edi + ebp]
lea edx, [edx + 3]
inc edi
mov al, byte [esp + ecx*4 + 0x50]
mov byte [edx - 5], al
mov al, byte [esp + ecx*4 + 0x51]
mov byte [edx - 4], al
mov al, byte [esp + ecx*4 + 0x52]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x100d4340
jmp 0x100d4398
xor edi, edi
test ebx, ebx
je 0x100d4398
lea edx, [eax + 2]
nop dword [eax]
movzx ecx, byte [edi + ebp]
lea edx, [edx + 4]
inc edi
mov al, byte [esp + ecx*4 + 0x50]
mov byte [edx - 6], al
mov al, byte [esp + ecx*4 + 0x51]
mov byte [edx - 5], al
mov al, byte [esp + ecx*4 + 0x52]
mov byte [edx - 4], al
mov al, byte [esp + ecx*4 + 0x53]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x100d4370
mov ebp, dword [esp + 0x14]
push dword [ebp + 0xc]
call fcn.10105fcb
mov eax, dword [esp + 0x28]
add esp, 4
mov dword [ebp + 0xc], eax
jmp 0x100d43ba
cmp byte [esp + 0x13], 0
je 0x100d43ba
inc dword [esi + 8]
push dword [ebp + 8]
call fcn.10105fcb
add esp, 4
mov dword [ebp + 8], 0
mov ecx, esi
call fcn.100d0eb0
mov ecx, esi
call fcn.100d0eb0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1428
ret 4
push dword [esp + 0x464]
call fcn.10105fcb
add esp, 4
mov dword [ebp + 8], 0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1428
ret 4
movzx eax, al
mov dword [esi + 8], eax
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1428
ret 4
mov dword [esi + 8], 4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1428
ret 4