Function at 0x503f5c
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x10]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [eax], edx
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp + 8], 0
je 0x503f96
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x58], 0
jne 0x503fa9
cmp byte [ebp + 0x20], 0
jne 0x503fa9
mov byte [ebp + 0x20], 1
cmp byte [ebp + 0x20], 0
je 0x503fed
xor eax, eax
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x54], edx
mov esi, dword [ebp - 4]
mov esi, dword [esi + 0x44]
dec esi
test esi, esi
jl 0x503fdb
inc esi
xor ebx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
and dword [eax + ebx*4], 0xbfffffff
inc ebx
dec esi
jne 0x503fca
mov eax, dword [ebp + 0x24]
test byte [eax + 8], 0x10
setne al
mov edx, dword [ebp - 4]
mov byte [edx + 0x50], al
jmp 0x503ffa
test byte [ebp + 0x14], 0x10
je 0x503ffa
mov eax, dword [ebp - 4]
mov byte [eax + 0x50], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x58], 1
cmp byte [ebp + 0x18], 0
je 0x50414c
mov dword [ebp - 0x28], 0x20e
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
or eax, dword [ebp + 0x14]
and eax, dword [ebp - 0x28]
jne 0x50402a
cmp dword [ebp + 8], 0
je 0x504af8
mov esi, dword [ebp - 4]
mov esi, dword [esi + 0x48]
dec esi
test esi, esi
jl 0x504af8
inc esi
xor ebx, ebx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x50407a
mov edx, ebx
add edx, edx
add edx, edx
add edx, edx
sub edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x40]
cmp dword [ecx + edx*4 + 8], 0
je 0x50407a
mov edx, dword [ebp + 0x24]
mov edx, ebx
add edx, edx
add edx, edx
add edx, edx
sub edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x40]
cmp eax, dword [ecx + edx*4 + 8]
jne 0x50413f
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
movzx eax, word [edx + eax*4 + 0x1a]
and eax, 0xfffff7ff
mov dword [ebp - 0x2c], eax
cmp dword [ebp + 8], 0
je 0x5040b8
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
or dword [eax + 4], edx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
or eax, dword [ebp + 0x14]
and eax, dword [ebp - 0x28]
je 0x504af8
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x44]
jge 0x5040e8
mov eax, dword [ebp + 0x14]
and eax, dword [ebp - 0x2c]
je 0x5040e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
test byte [eax + ebx*4 + 3], 0x40
je 0x5040e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
and dword [eax + ebx*4], 0xbfffffff
mov eax, dword [ebp - 4]
dec dword [eax + 0x54]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
and eax, dword [ebp - 0x2c]
je 0x50413f
cmp byte [ebp + 0x1c], 0
je 0x50411f
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x44]
jl 0x50410a
mov eax, dword [ebp - 4]
cmp byte [eax + 0x50], 0
jne 0x50411f
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x44]
jge 0x50413f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
test byte [eax + ebx*4 + 3], 0x40
je 0x50413f
push ebp
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 8]
and eax, dword [ebp - 0x2c]
setne al
push eax
mov eax, dword [ebp - 0x2c]
push eax
or ecx, 0xffffffff
mov edx, ebx
or eax, 0xffffffff
call fcn.00503b0c
pop ecx
inc ebx
dec esi
jne 0x50403c
jmp 0x504af8
mov dword [ebp - 0x28], 0x208
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
or eax, dword [ebp + 0x14]
and eax, dword [ebp - 0x28]
jne 0x50416b
cmp dword [ebp + 8], 0
je 0x50427c
cmp dword [ebp - 8], 0
je 0x50427c
mov eax, dword [ebp - 8]
cmp dword [eax + 8], 0
jle 0x50427c
mov eax, dword [ebp - 8]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x50427c
inc esi
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov eax, dword [eax + edx*4]
test eax, 0x40000000
je 0x504272
test eax, 0x20000000
je 0x5041c0
mov dword [ebp - 0x2c], 0x200
jmp 0x5041c7
mov dword [ebp - 0x2c], 8
cmp dword [ebp + 8], 0
je 0x5041f6
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
or dword [eax + 4], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
and eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x28]
jne 0x5041f6
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
or eax, dword [ebp + 0x14]
and eax, dword [ebp - 0x28]
je 0x50427c
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 0x14]
mov edi, dword [eax + edx*4]
lea eax, [edi + edi*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
mov ebx, dword [edx + eax*8]
mov eax, dword [ebp + 0x14]
and eax, dword [ebp - 0x2c]
je 0x504235
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
test byte [eax + ebx*4 + 3], 0x40
je 0x504235
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
and dword [eax + ebx*4], 0xbfffffff
mov eax, dword [ebp - 4]
dec dword [eax + 0x54]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
and eax, dword [ebp - 0x2c]
je 0x504272
cmp byte [ebp + 0x1c], 0
je 0x504253
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
test byte [eax + ebx*4 + 3], 0x40
je 0x504272
push ebp
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 8]
and eax, dword [ebp - 0x2c]
setne al
push eax
mov eax, dword [ebp - 0x2c]
push eax
xor ecx, ecx
mov edx, edi
mov eax, dword [ebp - 0x14]
call fcn.00503b0c
pop ecx
inc dword [ebp - 0x14]
dec esi
jne 0x504199
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
or eax, dword [ebp + 0x14]
test al, 0x20
jne 0x504293
cmp dword [ebp + 8], 0
je 0x50457d
cmp dword [ebp - 8], 0
je 0x50457d
mov eax, dword [ebp - 8]
cmp dword [eax + 8], 0
jle 0x50457d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
add eax, 7
shr eax, 3
call fcn.0040d864
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 8]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x504304
inc esi
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x14]
test byte [eax + edx*4 + 3], 0x40
je 0x5042fe
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 0x14]
mov edi, dword [eax + edx*4]
mov ecx, edi
and ecx, 7
mov al, 1
shl al, cl
shr edi, 3
mov edx, dword [ebp - 0x24]
or byte [edx + edi], al
inc dword [ebp - 0x14]
dec esi
jne 0x5042d1
mov eax, dword [ebp - 8]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x504575
inc esi
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov eax, dword [eax + edx*4]
and eax, 0x60000000
cmp eax, 0x60000000
jne 0x50456b
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 0x14]
mov edi, dword [eax + edx*4]
lea eax, [edi + edi*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
mov eax, dword [edx + eax*8 + 0x38]
dec eax
test eax, eax
jl 0x50456b
inc eax
mov dword [ebp - 0x30], eax
xor ebx, ebx
mov eax, ebx
mov edx, dword [ebp - 8]
mov edx, dword [edx + 4]
mov ecx, dword [ebp - 0x14]
mov edx, dword [edx + ecx*4]
and edx, 0xfffffff
cmp eax, edx
je 0x504561
lea edx, [edi + edi*8]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov edx, dword [ecx + edx*8 + 0x30]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*8]
push dword [ecx + 4]
push dword [ecx]
lea edx, [edi + edi*8]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov edx, dword [ecx + edx*8 + 0x30]
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*8 + 8]
mov ecx, dword [ebp + 0x24]
mov ecx, dword [ecx + 0x18]
mov eax, dword [ebp - 4]
add eax, 4
call fcn.004ec95c
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0xffffffff
je 0x504561
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0x10]
cmp eax, dword [ebp - 0x18]
je 0x504561
imul eax, dword [ebp - 0x18], 0x17
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x14]
mov edx, dword [edx + eax*4 + 8]
imul eax, dword [ebp - 0x18], 0x17
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x14]
mov eax, dword [ecx + eax*4]
mov ecx, edi
call fcn.004113b4
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffff
je 0x504561
imul eax, dword [ebp - 0x18], 0x17
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x14]
mov eax, dword [edx + eax*4 + 4]
mov edx, dword [ebp - 0x1c]
mov eax, dword [eax + edx*4]
and eax, 0x60000000
cmp eax, 0x60000000
jne 0x504561
imul eax, dword [ebp - 0x18], 0x17
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x14]
mov eax, dword [edx + eax*4 + 8]
dec eax
test eax, eax
jl 0x504561
inc eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], 0
imul eax, dword [ebp - 0x18], 0x17
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x14]
mov edx, dword [edx + eax*4 + 4]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [edx + ecx*4]
and edx, 0x60000000
cmp edx, 0x60000000
jne 0x504555
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x14]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x1c]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
and ecx, 7
mov eax, 1
shl eax, cl
mov edx, dword [ebp - 0x20]
shr edx, 3
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + edx]
and eax, edx
jne 0x504555
cmp dword [ebp + 8], 0
je 0x5044c0
mov eax, dword [ebp + 8]
or dword [eax + 4], 0x20
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
or eax, dword [ebp + 0x14]
test al, 0x20
je 0x504575
mov ecx, dword [ebp - 0x20]
and ecx, 7
mov al, 1
shl al, cl
mov edx, dword [ebp - 0x20]
shr edx, 3
mov ecx, dword [ebp - 0x24]
or byte [ecx + edx], al
test byte [ebp + 0x14], 0x20
je 0x50450e
mov eax, dword [ebp - 0x20]
lea eax, [eax + eax*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
mov eax, dword [edx + eax*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x3c]
test byte [edx + eax*4 + 3], 0x40
je 0x50450e
mov edx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x3c]
and dword [edx + eax*4], 0xbfffffff
mov eax, dword [ebp - 4]
dec dword [eax + 0x54]
mov eax, dword [ebp + 0x24]
test byte [eax + 0xc], 0x20
je 0x504555
cmp byte [ebp + 0x1c], 0
je 0x504539
mov eax, dword [ebp - 0x20]
lea eax, [eax + eax*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
mov eax, dword [edx + eax*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x3c]
test byte [edx + eax*4 + 3], 0x40
je 0x504555
push ebp
mov eax, dword [ebp + 0x24]
test byte [eax + 8], 0x20
setne al
push eax
push 0x20
xor ecx, ecx
mov edx, dword [ebp - 0x20]
or eax, 0xffffffff
call fcn.00503b0c
pop ecx
inc dword [ebp - 0x1c]
dec dword [ebp - 0x34]
jne 0x504448
inc ebx
dec dword [ebp - 0x30]
jne 0x50435e
inc dword [ebp - 0x14]
dec esi
jne 0x50431b
lea eax, [ebp - 0x24]
call fcn.0040d7e8
mov dword [ebp - 0x28], 6
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
or eax, dword [ebp + 0x14]
and eax, dword [ebp - 0x28]
jne 0x50459c
cmp dword [ebp + 8], 0
je 0x504722
mov esi, dword [ebp - 4]
mov esi, dword [esi + 0x38]
dec esi
test esi, esi
jl 0x504722
inc esi
xor edi, edi
lea eax, [edi + edi*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
cmp dword [edx + eax*8 + 0x34], 0
jle 0x5045d7
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
mov edx, dword [edx + eax*8 + 0x30]
test byte [edx + 0x24], 2
je 0x5045d7
mov dword [ebp - 0x2c], 2
jmp 0x5045de
mov dword [ebp - 0x2c], 4
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
mov ebx, dword [edx + eax*8]
cmp dword [ebp - 0x2c], 2
jne 0x50462d
mov edx, dword [ebp + 0x24]
cmp dword [edx + 0x14], 0
je 0x50462d
mov edx, ebx
add edx, edx
add edx, edx
add edx, edx
sub edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x40]
cmp dword [ecx + edx*4 + 0xc], 0
je 0x50462d
mov edx, ebx
add edx, edx
add edx, edx
add edx, edx
sub edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x40]
mov edx, dword [ecx + edx*4 + 0xc]
mov ecx, dword [ebp + 0x24]
cmp edx, dword [ecx + 0x14]
jne 0x50471a
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x50466b
mov edx, ebx
add edx, edx
add edx, edx
add edx, edx
sub edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x40]
cmp dword [ecx + edx*4 + 8], 0
je 0x50466b
mov edx, dword [ebp + 0x24]
mov edx, ebx
add edx, edx
add edx, edx
add edx, edx
sub edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x40]
cmp eax, dword [ecx + edx*4 + 8]
jne 0x50471a
cmp dword [ebp - 8], 0
je 0x50468a
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, edi
call fcn.004113b4
inc eax
jne 0x50471a
cmp dword [ebp + 8], 0
je 0x5046b5
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
or dword [eax + 4], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
and eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x28]
jne 0x5046b5
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
or eax, dword [ebp + 0x14]
and eax, dword [ebp - 0x28]
je 0x504722
mov eax, dword [ebp + 0x14]
and eax, dword [ebp - 0x2c]
je 0x5046dd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
test byte [eax + ebx*4 + 3], 0x40
je 0x5046dd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
and dword [eax + ebx*4], 0xbfffffff
mov eax, dword [ebp - 4]
dec dword [eax + 0x54]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
and eax, dword [ebp - 0x2c]
je 0x50471a
cmp byte [ebp + 0x1c], 0
je 0x5046fb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
test byte [eax + ebx*4 + 3], 0x40
je 0x50471a
push ebp
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 8]
and eax, dword [ebp - 0x2c]
setne al
push eax
mov eax, dword [ebp - 0x2c]
push eax
xor ecx, ecx
mov edx, edi
or eax, 0xffffffff
call fcn.00503b0c
pop ecx
inc edi
dec esi
jne 0x5045ae
xor edi, edi
mov dword [ebp - 0x28], 0x14
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
or eax, dword [ebp + 0x14]
and eax, dword [ebp - 0x28]
jne 0x504743
cmp dword [ebp + 8], 0
je 0x504876
mov esi, dword [ebp - 4]
mov esi, dword [esi + 0x48]
dec esi
test esi, esi
jl 0x504876
inc esi
xor ebx, ebx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x504793
mov edx, ebx
add edx, edx
add edx, edx
add edx, edx
sub edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x40]
cmp dword [ecx + edx*4 + 8], 0
je 0x504793
mov edx, dword [ebp + 0x24]
mov edx, ebx
add edx, edx
add edx, edx
add edx, edx
sub edx, ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x40]
cmp eax, dword [ecx + edx*4 + 8]
jne 0x50486e
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x44]
jge 0x5047a4
mov dword [ebp - 0x2c], 4
jmp 0x5047ac
mov dword [ebp - 0x2c], 0x10
inc edi
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x44]
jge 0x5047c6
mov eax, dword [ebp - 4]
mov edx, ebx
call fcn.004eef3c
test al, al
jne 0x50486e
cmp dword [ebp + 8], 0
je 0x5047e7
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
or dword [eax + 4], edx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
or eax, dword [ebp + 0x14]
and eax, dword [ebp - 0x28]
je 0x504876
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x44]
jge 0x504817
mov eax, dword [ebp + 0x14]
and eax, dword [ebp - 0x2c]
je 0x504817
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
test byte [eax + ebx*4 + 3], 0x40
je 0x504817
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
and dword [eax + ebx*4], 0xbfffffff
mov eax, dword [ebp - 4]
dec dword [eax + 0x54]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
and eax, dword [ebp - 0x2c]
je 0x50486e
cmp byte [ebp + 0x1c], 0
je 0x50484e
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x44]
jl 0x504839
mov eax, dword [ebp - 4]
cmp byte [eax + 0x50], 0
jne 0x50484e
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x44]
jge 0x50486e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
test byte [eax + ebx*4 + 3], 0x40
je 0x50486e
push ebp
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 8]
and eax, dword [ebp - 0x2c]
setne al
push eax
mov eax, dword [ebp - 0x2c]
push eax
or ecx, 0xffffffff
mov edx, ebx
or eax, 0xffffffff
call fcn.00503b0c
pop ecx
inc ebx
dec esi
jne 0x504755
mov eax, dword [ebp - 4]
mov dword [eax + 0x4c], edi
mov eax, dword [ebp + 0x24]
mov eax, dword [eax + 0xc]
or eax, dword [ebp + 0x14]
test al, 1
je 0x504af8
mov eax, dword [ebp + 0x24]
cmp dword [eax + 0x14], 0
jne 0x5048a3
mov eax, dword [ebp + 0x24]
cmp dword [eax + 0x18], 0
je 0x504af8
mov esi, dword [ebp - 4]
mov esi, dword [esi + 0x38]
dec esi
test esi, esi
jl 0x5049fd
inc esi
xor edi, edi
lea eax, [edi + edi*8]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
cmp dword [ecx + eax*8 + 0x34], 0
jle 0x504923
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov ecx, dword [ecx + eax*8 + 0x30]
test byte [ecx + 0x24], 2
je 0x504923
mov ecx, dword [ebp + 0x24]
cmp dword [ecx + 0x14], 0
je 0x504923
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov ecx, dword [ecx + eax*8]
mov ebx, ecx
add ecx, ecx
add ecx, ecx
add ecx, ecx
sub ecx, ebx
mov ebx, dword [ebp - 4]
mov ebx, dword [ebx + 0x40]
cmp dword [ebx + ecx*4 + 0xc], 0
je 0x504923
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov eax, dword [ecx + eax*8]
mov ecx, eax
add eax, eax
add eax, eax
add eax, eax
sub eax, ecx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x40]
mov eax, dword [ecx + eax*4 + 0xc]
mov ecx, dword [ebp + 0x24]
cmp eax, dword [ecx + 0x14]
jne 0x50497d
mov edx, dword [ebp + 0x24]
mov edx, dword [edx + 0x18]
test edx, edx
je 0x5049f5
lea eax, [edi + edi*8]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov eax, dword [ecx + eax*8]
mov ecx, eax
add eax, eax
add eax, eax
add eax, eax
sub eax, ecx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x40]
cmp dword [ecx + eax*4 + 8], 0
je 0x5049f5
mov eax, dword [ebp + 0x24]
lea eax, [edi + edi*8]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x34]
mov eax, dword [ecx + eax*8]
mov ecx, eax
add eax, eax
add eax, eax
add eax, eax
sub eax, ecx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x40]
cmp edx, dword [ecx + eax*4 + 8]
je 0x5049f5
test byte [ebp + 0x14], 1
je 0x5049bb
lea eax, [edi + edi*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
mov eax, dword [edx + eax*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x3c]
test byte [edx + eax*4 + 3], 0x40
je 0x5049bb
lea eax, [edi + edi*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
mov eax, dword [edx + eax*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x3c]
and dword [edx + eax*4], 0xbfffffff
mov eax, dword [ebp - 4]
dec dword [eax + 0x54]
mov eax, dword [ebp + 0x24]
test byte [eax + 0xc], 1
je 0x5049f5
cmp byte [ebp + 0x1c], 0
je 0x5049e3
lea eax, [edi + edi*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x34]
mov eax, dword [edx + eax*8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x3c]
test byte [edx + eax*4 + 3], 0x40
je 0x5049f5
push ebp
push 0
push 1
xor ecx, ecx
mov edx, edi
or eax, 0xffffffff
call fcn.00503b0c
pop ecx
inc edi
dec esi
jne 0x5048b5
mov eax, dword [ebp + 0x24]
cmp dword [eax + 0x18], 0
je 0x504af8
mov esi, dword [ebp - 4]
mov esi, dword [esi + 0x48]
dec esi
test esi, esi
jl 0x504af8
inc esi
xor ebx, ebx
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x44]
jge 0x504a36
mov eax, dword [ebp - 4]
mov edx, ebx
call fcn.004eef3c
test al, al
jne 0x504af0
mov eax, dword [ebp + 0x24]
cmp dword [eax + 0x18], 0
je 0x504af0
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
cmp dword [edx + eax*4 + 8], 0
je 0x504af0
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x40]
mov eax, dword [edx + eax*4 + 8]
mov edx, dword [ebp + 0x24]
cmp eax, dword [edx + 0x18]
je 0x504af0
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x44]
jge 0x504aa8
test byte [ebp + 0x14], 1
je 0x504aa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
test byte [eax + ebx*4 + 3], 0x40
je 0x504aa8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
and dword [eax + ebx*4], 0xbfffffff
mov eax, dword [ebp - 4]
dec dword [eax + 0x54]
mov eax, dword [ebp + 0x24]
test byte [eax + 0xc], 1
je 0x504af0
cmp byte [ebp + 0x1c], 0
je 0x504add
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x44]
jl 0x504ac8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x50], 0
jne 0x504add
mov eax, dword [ebp - 4]
cmp ebx, dword [eax + 0x44]
jge 0x504af0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
test byte [eax + ebx*4 + 3], 0x40
je 0x504af0
push ebp
push 0
push 1
or ecx, 0xffffffff
mov edx, ebx
or eax, 0xffffffff
call fcn.00503b0c
pop ecx
inc ebx
dec esi
jne 0x504a1c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20