Function at 0x100752e0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0xf8
mov eax, dword [0x101a53c4]
xor eax, esp
mov dword [esp + 0xf4], eax
push ebx
push ebp
mov ebp, dword [esp + 0x104]
mov eax, dword [ebp + 4]
push edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0xa0], eax
mov bl, bl
mov ebx, dword [ebp]
mov dword [esp + 0x9c], ebx
mov al, al
mov cl, cl
mov ecx, dword [ebp + 0x44]
mov dword [esp + 0x38], ecx
mov ch, ch
mov edx, dword [ebp + 0x50]
mov dword [esp + 0x58], edx
push edx
pop edx
mov eax, dword [ebp + 0x54]
mov dword [esp + 0xa4], eax
xchg ebx, eax
xchg ebx, eax
push ebx
pop ebx
mov ecx, dword [ebp + 0x15c]
mov dword [esp + 0x50], ecx
xchg ebx, eax
xchg ebx, eax
mov edx, dword [ebp + 0x58]
mov dword [esp + 0xac], edx
nop
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x60], eax
mov ecx, ecx
mov ecx, dword [ebp + 0x4c]
mov dword [esp + 0x5c], ecx
mov edi, edi
mov ecx, dword [ebp + 0x160]
mov dword [esp + 0x6c], ecx
push edx
pop edx
push 0x1015a888
push 0x1015a888
call fcn.1000bbd0
mov al, al
push edx
pop edx
mov ecx, ecx
mov edi, dword [ebp + 8]
cmp edi, dword [ebp + 0xc]
mov dword [esp + 0x48], edi
jg 0x100762bc
push esi
jmp 0x100753a2
mov ebp, edx
cmp dword [ebp + 0x164], 0
jne 0x100762bb
mov edx, dword [ebp + 0x24]
imul edx, dword [esp + 0x3c]
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x5c]
push edx
push eax
push ecx
call fcn.100f6f60
add esp, 0xc
mov dl, dl
mov ebx, ebx
mov dword [esp + 0x24], 0
push ecx
pop ecx
mov ebp, ebp
mov edi, edi
lea esi, [ebx + 0x3264]
push 0x3e8
push esi
call fcn.10041800
add esp, 8
nop
test edi, edi
jl 0x100762f4
mov edx, dword [esp + 0xa4]
cmp edi, dword [edx + 8]
jge 0x100762f4
mov eax, edx
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edi*4]
mov edx, dword [ebp + 0x10]
push 0
push edx
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x88]
push ecx
push eax
push ebx
call fcn.10065c30
add esp, 0x1c
test eax, eax
push esi
jne 0x1007544a
call fcn.10041890
add esp, 4
mov esi, esi
jmp 0x100762a7
call fcn.10041890
add esp, 4
mov ebx, ebx
mov esi, dword [esp + 0x24]
mov dword [esp + 0xac], esi
mov bl, bl
mov edx, dword [esp + 0x7c]
cmp edx, dword [ebp + 0x20]
jg 0x100762d4
mov eax, dword [esp + 0x80]
cmp eax, dword [ebp + 0x24]
jg 0x100762d4
cmp dword [ebp + 0x18], 0
jne 0x100754c3
test eax, eax
jle 0x10075587
mov ebx, dword [esp + 0x34]
mov edx, esi
mov esi, dword [esp + 0x7c]
add edx, 3
mov edi, eax
jmp 0x100754a0
test esi, esi
jle 0x100754b7
mov eax, edx
mov ecx, esi
mov dl, dl
mov byte [eax], 0
mov ch, ch
add eax, 4
sub ecx, 1
jne 0x100754a8
add edx, ebx
sub edi, 1
jne 0x100754a0
jmp 0x10075587
mov eax, dword [esp + 0x80]
imul eax, dword [esp + 0x34]
push eax
call fcn.100f4a78
add esp, 4
mov dword [esp + 0x24], eax
mov dl, dl
test eax, eax
jne 0x10075503
cmp dword [ebp + 0x10], eax
jne 0x100754f3
cmp dword [ebx + 0x32fc], eax
jne 0x100762a7
push esi
call fcn.100f4b3b
add esp, 4
mov cl, cl
jmp 0x100762a7
cmp dword [esp + 0x80], 0
jle 0x10075587
mov ecx, dword [esp + 0x80]
mov ebp, dword [esp + 0x24]
add esi, 1
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x7c], 0
jle 0x10075576
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x7c]
mov esi, ebp
mov ebx, ebx
mov al, al
movzx eax, byte [ecx + 1]
mov eax, eax
movzx edx, byte [ecx]
mov cl, cl
movzx edi, byte [ecx - 1]
mov ebx, ebx
add edi, edx
add edi, eax
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
mov al, al
movzx eax, dl
mov edx, eax
shl edx, 8
or edx, eax
shl edx, 8
or edx, eax
mov dword [esi], edx
mov edi, edi
add ecx, 4
add esi, 4
sub ebx, 1
jne 0x10075534
mov eax, dword [esp + 0x34]
add dword [esp + 0x44], eax
add ebp, eax
sub dword [esp + 0x40], 1
jne 0x10075523
mov ah, ah
push ecx
pop ecx
mov cl, cl
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov ah, ah
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x5c
push 0x1015a780
push eax
call fcn.100f764d
add esp, 0xc
mov ebp, ebp
movzx ecx, byte [esp + 0x12]
mov dword [esp + 0x44], ecx
mov dh, dh
movzx edx, byte [esp + 0x11]
mov dword [esp + 0x6c], edx
mov ebx, ebx
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dword [esp + 0x68], eax
mov bl, bl
mov cl, cl
mov ah, ah
mov bl, bl
mov bl, bl
mov dl, dl
mov dh, dh
mov eax, eax
mov dh, dh
push eax
pop eax
mov ah, ah
mov ah, ah
mov ebx, ebx
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
mov dword [esp + 0x50], eax
xchg ebx, eax
xchg ebx, eax
mov edi, dword [esp + 0x7c]
mov ecx, dword [esi + edi*4 - 4]
mov ecx, ecx
mov ebp, dword [esp + 0x80]
lea eax, [ebp - 1]
imul eax, dword [esp + 0x34]
mov edx, dword [eax + esi]
push ebx
pop ebx
lea eax, [eax + edi*4]
mov eax, dword [eax + esi - 4]
mov ecx, ecx
mov dword [esp + 0x58], ebx
push eax
pop eax
push eax
pop eax
mov ebx, dword [esp + 0x50]
cmp ebx, ecx
jne 0x10075785
cmp ecx, edx
jne 0x10075785
cmp edx, eax
jne 0x10075785
mov dword [esp + 0x58], 1
push ecx
pop ecx
xor edx, edx
test ebp, ebp
jle 0x10075687
xor eax, eax
test edi, edi
jle 0x1007567c
mov ecx, esi
lea ecx, [ecx]
mov cl, cl
cmp dword [ecx], ebx
jne 0x10075672
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x10075660
jmp 0x1007567c
mov dh, dh
mov ebp, ebp
mov bl, bl
cmp eax, edi
jl 0x10075687
add esi, dword [esp + 0x34]
add edx, 1
cmp edx, ebp
jl 0x10075655
xor esi, esi
test ebp, ebp
jle 0x100756c7
xor edx, edx
nop
lea eax, [edi - 1]
test eax, eax
jl 0x100756bc
lea ecx, [edx + eax*4]
add ecx, dword [esp + 0x24]
mov edi, edi
mov al, al
cmp dword [ecx], ebx
jne 0x100756b2
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x100756a0
jmp 0x100756bc
mov dl, dl
mov ecx, ecx
push eax
pop eax
test eax, eax
jge 0x100756c7
add edx, dword [esp + 0x34]
add esi, 1
cmp esi, ebp
jl 0x10075690
lea esi, [ebp - 1]
test esi, esi
jl 0x10075725
mov eax, dword [esp + 0x34]
mov edx, esi
imul edx, eax
mov ebx, eax
neg ebx
add edx, dword [esp + 0x24]
nop
xor eax, eax
test edi, edi
jle 0x10075713
mov ebp, dword [esp + 0x50]
mov ecx, edx
lea esp, [esp]
push ebx
pop ebx
cmp dword [ecx], ebp
jne 0x10075702
add eax, 1
add ecx, 4
cmp eax, edi
jl 0x100756f0
jmp 0x1007570c
mov bl, bl
mov bh, bh
mov bl, bl
cmp eax, edi
jl 0x1007571e
mov ebp, dword [esp + 0x80]
sub esi, 1
add edx, ebx
test esi, esi
jge 0x100756e0
jmp 0x10075725
mov ebp, dword [esp + 0x80]
lea esi, [ebp - 1]
test esi, esi
jl 0x10075785
mov ebx, dword [esp + 0x34]
mov edx, esi
imul edx, ebx
neg ebx
lea eax, [edi - 1]
test eax, eax
jl 0x10075773
mov ebp, dword [esp + 0x50]
lea ecx, [edx + eax*4]
add ecx, dword [esp + 0x24]
lea esp, [esp]
mov ah, ah
cmp dword [ecx], ebp
jne 0x10075762
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x10075750
jmp 0x1007576c
mov ecx, ecx
push ebx
pop ebx
xchg ebx, eax
xchg ebx, eax
test eax, eax
jge 0x1007577e
mov ebp, dword [esp + 0x80]
sub esi, 1
add edx, ebx
test esi, esi
jge 0x10075737
jmp 0x10075785
mov ebp, dword [esp + 0x80]
mov ecx, ebp
imul ecx, edi
mov dword [esp + 0x74], ecx
imul ecx, dword [esp + 0x54]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 1]
mov dword [esp + 0x38], edx
mov ecx, ecx
mov eax, dword [esp + 0xb0]
xor ecx, ecx
cmp eax, ecx
jne 0x10075a65
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x24]
sub ecx, ebp
js 0x10076257
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x28], edx
jmp 0x100757e0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x20]
sub ecx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0
js 0x10075a37
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov edi, edi
push eax
pop eax
xor eax, eax
mov dword [esp + 0x14], eax
mov edi, edi
mov ebp, dword [esp + 0x74]
mov edi, edi
cmp dword [esp + 0x80], eax
mov dword [esp + 0x40], eax
jle 0x100758cb
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov dl, dl
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x10075894
mov edi, dword [esp + 0x30]
mov edi, edi
sub ebp, 1
mov ebp, ebp
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x4c]
push eax
push ecx
mov ecx, dword [ebx + esi*4]
push edx
mov edx, dword [edi]
call fcn.1004bce0
add esp, 0x14
test eax, eax
je 0x10075876
add dword [esp + 0x14], 1
mov eax, eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x100758d9
add ecx, ebp
cmp ecx, eax
jl 0x10075894
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x10075840
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jge 0x100758d9
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x100758cb
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add ebx, dword [esp + 0x34]
add dword [esp + 0x30], ecx
add eax, 1
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x40], eax
jl 0x10075830
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x14], edx
jl 0x10075a14
xor eax, eax
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov dword [esp + 0xcd], eax
mov word [esp + 0xd1], ax
mov byte [esp + 0xd3], al
mov ecx, ecx
push eax
pop eax
mov ebx, ebx
mov byte [esp + 0xf8], 0x25
mov byte [esp + 0xf9], 0x64
mov byte [esp + 0xfa], 0x2c
mov byte [esp + 0xfb], 0x25
mov byte [esp + 0xfc], 0x64
mov byte [esp + 0xfd], 0x2c
mov byte [esp + 0xfe], 0x25
mov byte [esp + 0xff], 0x64
mov byte [esp + 0x100], 0x2c
mov byte [esp + 0x101], 0x25
mov byte [esp + 0x102], 0x64
mov byte [esp + 0x103], al
mov al, al
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x68]
add edx, eax
push edx
mov edx, dword [esp + 0x54]
push ecx
push edx
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.100f68f0
add esp, 0x18
mov ah, ah
mov esi, dword [esp + 0x70]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x100759e3
push 0x1015a45d
push 0x1015a45c
mov ecx, esi
call fcn.100095a0
mov cl, cl
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x100759f0
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.100095a0
mov dh, dh
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [edx + 0x20]
sub ecx, dword [esp + 0x7c]
add dword [esp + 0x2c], 4
add eax, 1
cmp eax, ecx
mov dword [esp + 0x1c], eax
jle 0x10075801
mov edx, dword [esp + 0x3c]
add dword [esp + 0x28], edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x24]
sub edx, dword [esp + 0x80]
add eax, 1
cmp eax, edx
mov dword [esp + 0x20], eax
jle 0x100757e0
jmp 0x10076257
cmp eax, 1
jne 0x10075d17
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
sub eax, ebp
mov dword [esp + 0x20], eax
js 0x10076257
mov edx, dword [esp + 0x3c]
imul eax, edx
mov ecx, edx
neg ecx
add eax, dword [esp + 0x5c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x30], eax
jmp 0x10075aa0
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x20]
sub edx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0
js 0x10075cf7
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov bh, bh
push ecx
pop ecx
xor eax, eax
mov dword [esp + 0x14], eax
mov edx, edx
mov ebp, dword [esp + 0x74]
mov al, al
cmp dword [esp + 0x80], eax
mov dword [esp + 0x48], eax
jle 0x10075b8b
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
mov bh, bh
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x10075b54
mov edi, dword [esp + 0x28]
mov edi, edi
sub ebp, 1
mov ebp, ebp
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [ebx + esi*4]
push edx
mov edx, dword [edi]
push eax
call fcn.1004bce0
add esp, 0x14
test eax, eax
je 0x10075b36
add dword [esp + 0x14], 1
mov ebx, ebx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x10075b99
add ecx, ebp
cmp ecx, eax
jl 0x10075b54
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x10075b00
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jge 0x10075b99
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x10075b8b
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
add ebx, dword [esp + 0x34]
add dword [esp + 0x28], ecx
add eax, 1
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x48], eax
jl 0x10075af0
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x14], edx
jl 0x10075cd4
xor eax, eax
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov dword [esp + 0xcd], eax
mov word [esp + 0xd1], ax
mov byte [esp + 0xd3], al
xchg ebx, eax
xchg ebx, eax
mov bh, bh
mov ah, ah
mov byte [esp + 0xe0], 0x25
mov byte [esp + 0xe1], 0x64
mov byte [esp + 0xe2], 0x2c
mov byte [esp + 0xe3], 0x25
mov byte [esp + 0xe4], 0x64
mov byte [esp + 0xe5], 0x2c
mov byte [esp + 0xe6], 0x25
mov byte [esp + 0xe7], 0x64
mov byte [esp + 0xe8], 0x2c
mov byte [esp + 0xe9], 0x25
mov byte [esp + 0xea], 0x64
mov byte [esp + 0xeb], al
push eax
pop eax
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x68]
add edx, eax
push edx
mov edx, dword [esp + 0x54]
push ecx
push edx
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.100f68f0
add esp, 0x18
mov esi, esi
mov esi, dword [esp + 0x70]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x10075ca3
push 0x1015a45d
push 0x1015a45c
mov ecx, esi
call fcn.100095a0
mov bh, bh
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10075cb0
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.100095a0
mov ah, ah
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [edx + 0x20]
sub ecx, dword [esp + 0x7c]
add dword [esp + 0x2c], 4
add eax, 1
cmp eax, ecx
mov dword [esp + 0x1c], eax
jle 0x10075ac1
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
add dword [esp + 0x30], edx
sub eax, 1
test eax, eax
mov dword [esp + 0x20], eax
jge 0x10075aa0
jmp 0x10076257
cmp eax, 2
jne 0x10075fbc
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x24]
sub ecx, ebp
js 0x10076257
mov dword [esp + 0x30], 0
jmp 0x10075d40
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x20]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
js 0x10075f8e
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + ecx*4]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov cl, cl
mov dh, dh
xor eax, eax
mov dword [esp + 0x14], eax
mov ah, ah
mov ebp, dword [esp + 0x74]
mov dh, dh
cmp dword [esp + 0x80], eax
mov dword [esp + 0x48], eax
jle 0x10075e30
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], edx
push eax
pop eax
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x10075dfa
mov edi, dword [esp + 0x28]
sub ebp, 1
push ecx
pop ecx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [edi]
push eax
push ecx
mov ecx, dword [ebx + esi*4]
call fcn.1004bce0
add esp, 0x14
test eax, eax
je 0x10075ddb
add dword [esp + 0x14], 1
mov cl, cl
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x10075e3e
lea edx, [ecx + ebp]
cmp edx, eax
jl 0x10075dfa
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x10075da5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jge 0x10075e3e
add eax, ebp
cmp eax, ecx
jl 0x10075e30
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
add ebx, dword [esp + 0x34]
add dword [esp + 0x28], ecx
add eax, 1
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x48], eax
jl 0x10075d97
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x14], edx
jl 0x10075f76
xor eax, eax
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov dword [esp + 0xcd], eax
mov word [esp + 0xd1], ax
mov byte [esp + 0xd3], al
push ecx
pop ecx
mov esi, esi
mov bl, bl
mov byte [esp + 0xd4], 0x25
mov byte [esp + 0xd5], 0x64
mov byte [esp + 0xd6], 0x2c
mov byte [esp + 0xd7], 0x25
mov byte [esp + 0xd8], 0x64
mov byte [esp + 0xd9], 0x2c
mov byte [esp + 0xda], 0x25
mov byte [esp + 0xdb], 0x64
mov byte [esp + 0xdc], 0x2c
mov byte [esp + 0xdd], 0x25
mov byte [esp + 0xde], 0x64
mov byte [esp + 0xdf], al
mov dl, dl
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x68]
add edx, eax
push edx
mov edx, dword [esp + 0x54]
push ecx
push edx
lea eax, [esp + 0xe4]
push eax
lea ecx, [esp + 0xc8]
push ecx
call fcn.100f68f0
add esp, 0x18
push ecx
pop ecx
mov esi, dword [esp + 0x70]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0x14]
je 0x10075f48
push 0x1015a45d
push 0x1015a45c
mov ecx, esi
call fcn.100095a0
mov eax, eax
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10075f52
sub eax, edx
lea eax, [esp + eax + 0xb4]
push eax
lea ecx, [esp + 0xb8]
push ecx
mov ecx, esi
call fcn.100095a0
mov cl, cl
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], 4
sub eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x10075d68
mov edx, dword [esp + 0x3c]
add dword [esp + 0x30], edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov edx, dword [ecx + 0x24]
sub edx, dword [esp + 0x80]
add eax, 1
cmp eax, edx
mov dword [esp + 0x20], eax
jle 0x10075d40
jmp 0x10076257
cmp eax, 3
jne 0x10076257
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x24]
sub eax, dword [esp + 0x80]
mov dword [esp + 0x20], eax
js 0x10076257
mov ecx, dword [esp + 0x3c]
imul eax, ecx
mov dword [esp + 0x30], eax
mov eax, ecx
neg eax
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x20]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
js 0x1007623c
mov edx, dword [esp + 0x30]
lea eax, [edx + eax*4]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov ebx, ebx
mov ecx, ecx
xor eax, eax
mov dword [esp + 0x14], eax
nop
mov ebp, dword [esp + 0x74]
mov dl, dl
cmp dword [esp + 0x80], eax
mov dword [esp + 0x48], eax
jle 0x100760db
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
mov ebp, ebp
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x100760a4
mov edi, dword [esp + 0x28]
sub ebp, 1
mov ah, ah
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [ebx + esi*4]
push edx
mov edx, dword [edi]
push eax
call fcn.1004bce0
add esp, 0x14
test eax, eax
je 0x10076086
add dword [esp + 0x14], 1
mov edi, edi
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x100760eb
add ecx, ebp
cmp ecx, eax
jl 0x100760a4
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x7c]
jl 0x10076050
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jge 0x100760eb
lea edx, [eax + ebp]
cmp edx, ecx
jl 0x100760e3
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
add ebx, dword [esp + 0x34]
add dword [esp + 0x28], ecx
add eax, 1
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x48], eax
jl 0x10076042
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
cmp eax, ecx
jl 0x10076224
xor eax, eax
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb5], eax
mov dword [esp + 0xb9], eax
mov dword [esp + 0xbd], eax
mov dword [esp + 0xc1], eax
mov dword [esp + 0xc5], eax
mov dword [esp + 0xc9], eax
mov dword [esp + 0xcd], eax
mov word [esp + 0xd1], ax
mov byte [esp + 0xd3], al
push ecx
pop ecx
mov al, al
mov ebx, ebx
mov byte [esp + 0xec], 0x25
mov byte [esp + 0xed], 0x64
mov byte [esp + 0xee], 0x2c
mov byte [esp + 0xef], 0x25
mov byte [esp + 0xf0], 0x64
mov byte [esp + 0xf1], 0x2c
mov byte [esp + 0xf2], 0x25
mov byte [esp + 0xf3], 0x64
mov byte [esp + 0xf4], 0x2c
mov byte [esp + 0xf5], 0x25
mov byte [esp + 0xf6], 0x64
mov byte [esp + 0xf7], al
mov bl, bl
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
add edx, eax
mov eax, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x68]
add ecx, edx
push ecx
mov ecx, dword [esp + 0x54]
push eax
push ecx
lea edx, [esp + 0xfc]
push edx
lea eax, [esp + 0xc8]
push eax
call fcn.100f68f0
add esp, 0x18
mov bl, bl
mov esi, dword [esp + 0x70]
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0x14]
je 0x100761f5
push 0x1015a45d
push 0x1015a45c
mov ecx, esi
call fcn.100095a0
push eax
pop eax
lea eax, [esp + 0xb4]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10076200
sub eax, edx
lea edx, [esp + eax + 0xb4]
push edx
lea eax, [esp + 0xb8]
push eax
mov ecx, esi
call fcn.100095a0
mov esi, esi
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x2c], 4
sub eax, 1
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x10076014
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
add dword [esp + 0x30], ecx
sub eax, 1
test eax, eax
mov dword [esp + 0x20], eax
jge 0x10075ff0
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x10], 0
jne 0x10076271
mov eax, dword [esp + 0xa0]
cmp dword [eax + 0x32fc], 0
jne 0x10076283
mov ecx, dword [esp + 0xac]
push ecx
call fcn.100f4b3b
add esp, 4
mov edx, edx
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x18], 0
je 0x1007629c
mov eax, dword [esp + 0x24]
push eax
call fcn.100f4b3b
add esp, 4
mov ah, ah
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0xa0]
mov edx, dword [esp + 0x18]
add edi, 1
cmp edi, dword [edx + 0xc]
mov dword [esp + 0x4c], edi
jle 0x100753a0
pop esi
mov ecx, dword [esp + 0x100]
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.100f5016
add esp, 0xf8
ret
cmp dword [ebp + 0x10], 0
jne 0x100762e3
cmp dword [ebx + 0x32fc], 0
jne 0x100762a7
mov ecx, dword [esp + 0x24]
push ecx
call fcn.100f4b3b
add esp, 4
mov esi, esi
jmp 0x100762a7
jmp fcn.100e3ae9