Function at 0x5e1b9c
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x40
push ebp
mov ebp, ecx
mov eax, ebp
and eax, 0xfffff000
mov dword [esp + 0x20], eax
mov eax, dword [eax]
push edi
mov edi, dword [eax + 0x128]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], edi
call fcn.005ae1ec
test al, al
je 0x5e1be5
test edi, edi
je 0x5e1bef
push 1
push ebp
mov ecx, edi
call fcn.005456bc
test eax, eax
jne 0x5e1bef
pop edi
xor eax, eax
pop ebp
add esp, 0x40
ret 0xc
mov ecx, edi
call fcn.005eca0c
mov ecx, dword [edi + 0xc74]
mov dl, byte [ecx + 0x215]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
mov ecx, eax
and ecx, 7
cmp cl, 7
mov byte [esp + 0x14], dl
jne 0x5e1c1e
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
push ebx
mov ecx, eax
push esi
and ecx, 0xfffffff8
call fcn.00573eec
mov dword [esp + 0x40], eax
cmp byte [ebp + 0x25], 7
jne 0x5e1cda
mov ebx, dword [esp + 0x54]
mov edx, ebx
and edx, 7
cmp dl, 7
mov eax, ebx
jne 0x5e1c4e
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
and eax, 0xfffffff8
mov eax, dword [eax + 8]
test eax, eax
je 0x5e1c5c
mov esi, dword [eax]
jmp 0x5e1c60
mov esi, dword [esp + 0x54]
test eax, eax
je 0x5e1c75
mov ecx, ebp
call fcn.005e173c
cmp eax, esi
jg 0x5e1cda
push 1
inc esi
push esi
jmp 0x5e1cd3
mov ecx, dword [esp + 0x1c]
mov edx, dword [edi + 0xd24]
push ecx
push edx
push ebx
call fcn.0055dd4c
add esp, 0xc
test al, al
je 0x5e1c9f
mov eax, dword [esp + 0x58]
push 0
push eax
mov ecx, edi
call fcn.0053d3ac
push eax
jmp 0x5e1cd3
cmp dword [esp + 0x28], 7
jge 0x5e1cde
mov edx, dword [esp + 0x40]
push 0
push 0xa
lea ecx, [esp + 0x44]
push ecx
push edx
call fcn.005e9ddc
add esp, 0x10
test eax, eax
je 0x5e1cda
mov ecx, ebp
call fcn.005e173c
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jg 0x5e1cda
push 1
inc ecx
push ecx
mov ecx, ebp
call fcn.005e64ec
mov ebx, dword [esp + 0x54]
mov al, byte [esp + 0x1c]
test al, al
mov ecx, ebp
je 0x5e1cf0
push ebx
call fcn.005df5ac
jmp 0x5e1cf8
push 0
push ebx
call fcn.005df38c
mov edx, eax
xor ebx, ebx
cmp edx, ebx
mov dword [esp + 0x14], edx
mov byte [esp + 0x3c], 0
mov byte [esp + 0x12], 0
je 0x5e1d4f
mov ecx, dword [edx + 8]
mov eax, ecx
and eax, 3
test cl, 4
jne 0x5e1d1f
mov ecx, eax
jmp 0x5e1d2c
mov ecx, dword [edx + 8]
and ecx, 0xfffffff8
mov cx, word [ecx + 6]
or cx, ax
shr cl, 2
test cl, 1
je 0x5e2279
test byte [esp + 0x5c], 0x40
jne 0x5e2279
pop esi
pop ebx
pop edi
xor eax, eax
pop ebp
add esp, 0x40
ret 0xc
mov eax, dword [esp + 0x5c]
and eax, 0xffbf
test ah, 2
mov dword [esp + 0x5c], eax
jne 0x5e1e2f
mov ecx, ebp
mov dword [esp + 0x30], ebx
call fcn.005df68c
mov esi, eax
cmp esi, ebx
je 0x5e1e2f
mov edi, edi
test byte [esi + 0x24], 1
je 0x5e1dfb
mov al, byte [esp + 0x1c]
test al, al
mov ecx, esi
je 0x5e1d98
mov edx, dword [esp + 0x54]
push edx
call fcn.005df5ac
jmp 0x5e1da2
mov eax, dword [esp + 0x54]
push eax
call fcn.005df53c
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, esi
mov edi, eax
call fcn.005e15ac
test edi, edi
mov ebx, eax
je 0x5e1dd7
test ebx, ebx
je 0x5e1dd7
or dword [esp + 0x24], 1
mov edx, dword [ebx + 8]
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], edx
call fcn.0058990c
test al, al
jne 0x5e1dd7
mov al, 1
jmp 0x5e1dd9
xor al, al
test byte [esp + 0x24], 1
je 0x5e1de5
and dword [esp + 0x24], 0xfffffffe
test al, al
je 0x5e1dfb
mov ecx, edi
call fcn.0058d04c
test al, al
je 0x5e1e1e
cmp dword [esp + 0x28], 8
jge 0x5e1e1e
mov eax, dword [esp + 0x30]
inc eax
cmp eax, 0x100
mov dword [esp + 0x30], eax
jge 0x5e1e6c
mov ecx, esi
call fcn.005df68c
mov esi, eax
test esi, esi
jne 0x5e1d7c
jmp 0x5e1e2f
test edi, edi
mov dword [esp + 0x14], edi
mov byte [esp + 0x12], 1
jne 0x5e2279
mov edx, dword [ebp + 0x20]
cmp dword [ebp + 0x1c], edx
jb 0x5e2045
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
xor edi, edi
test edx, edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x14], edi
jbe 0x5e1eb5
mov ecx, dword [ebp + 0x18]
mov esi, edx
add ecx, 8
mov dword [esp + 0x14], esi
mov eax, dword [ecx]
test al, 4
jne 0x5e1e9d
test eax, 0xfffffff8
jmp 0x5e1ea3
mov esi, dword [esp + 0x18]
push 0
push 0
push 3
lea ecx, [esi + 0x24]
call fcn.0058f79c
mov eax, dword [esi]
push 0x9d
push 3
push esi
call dword [eax + 0xe0]
add esp, 0xc
mov dword [esi + 0x718], 1
jmp 0x5e1e2f
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x5e1eab
inc edi
add ecx, 0xc
dec esi
jne 0x5e1e5f
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x30]
mov ebx, dword [ebp + 0x18]
lea ecx, [edx + edx*2]
lea eax, [edi*4]
cmp eax, ecx
jb 0x5e1ee4
mov ecx, dword [esp + 0x34]
push 3
push 3
add edx, edx
push 0xc
push edx
mov dword [esp + 0x48], edx
call fcn.0071303c
mov ebx, eax
jmp 0x5e1ee8
mov dword [esp + 0x38], edx
mov esi, dword [ebp + 0x18]
xor eax, eax
cmp ebx, esi
mov dword [esp + 0x24], eax
je 0x5e1f1d
cmp edi, dword [ebp + 0x20]
jne 0x5e1f1d
mov eax, dword [esp + 0x30]
lea ecx, [eax + eax*2]
shl ecx, 2
mov edx, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x24], eax
jmp 0x5e1fb9
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x44], 2
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], eax
jbe 0x5e1fb0
xor edx, edx
mov esi, ebx
mov edi, edi
mov eax, dword [ebp + 0x18]
lea ecx, [edx + eax]
mov eax, dword [ecx + 8]
test al, 4
jne 0x5e1f50
test eax, 0xfffffff8
jmp 0x5e1f56
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x5e1f9d
mov edi, dword [esp + 0x24]
mov eax, esi
inc edi
add esi, 0xc
cmp ecx, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], esi
je 0x5e1f9d
mov esi, ecx
mov edi, dword [esi]
mov dword [eax], edi
mov edi, dword [esi + 4]
mov dword [eax + 4], edi
mov esi, dword [esi + 8]
mov dword [eax + 8], esi
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
mov dword [ecx], eax
mov eax, dword [esp + 0x48]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x20]
inc eax
add edx, 0xc
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x5e1f3c
lea ecx, [esp + 0x44]
call fcn.005ae32c
mov eax, dword [ebp + 0x18]
cmp ebx, eax
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0x1c], ecx
je 0x5e1fd1
mov ecx, dword [esp + 0x34]
push eax
call fcn.00713acc
cmp dword [ebp + 0x18], ebx
jne 0x5e1fdf
test ebx, ebx
jne 0x5e1fdf
mov dword [ebp + 0x18], ebx
jmp 0x5e1fec
lea eax, [ebp + 0x18]
push ebx
push eax
call fcn.007148fc
add esp, 8
mov edx, dword [esp + 0x38]
mov dword [ebp + 0x20], edx
mov edx, dword [ebp + 0x14]
test edx, edx
mov dword [ebp + 0x10], ebx
je 0x5e2045
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x14]
je 0x5e2045
mov ecx, dword [edx + 8]
mov edi, dword [edx + 4]
shl ecx, 2
mov esi, ecx
shr ecx, 2
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
xor esi, esi
rep stosb byte es:[edi], al
mov dword [edx + 0xc], esi
cmp dword [ebp + 0x1c], esi
jbe 0x5e2045
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x18]
push edi
push esi
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.005ddb4c
mov eax, dword [ebp + 0x1c]
inc esi
cmp esi, eax
jb 0x5e202f
mov eax, dword [ebp + 0x1c]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 0x18]
lea ecx, [eax + edx*4]
mov dword [esp + 0x14], ecx
call fcn.005ae32c
mov eax, dword [esp + 0x54]
mov ecx, eax
and ecx, 7
cmp cl, 7
jne 0x5e206e
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx]
mov edx, dword [esp + 0x20]
mov ebx, dword [edx + 0x18]
and eax, 0xfffffff8
mov ebp, eax
mov al, byte [edi + 0x109]
mov esi, ebp
and esi, 0xfffffff8
test al, al
je 0x5e20b5
test esi, esi
je 0x5e20b5
push ebx
call fcn.0058985c
add esp, 4
test eax, eax
je 0x5e20b5
push esi
mov ecx, edi
call fcn.0071367c
test eax, eax
je 0x5e20b5
push esi
push ebx
mov ecx, edi
call fcn.0071418c
mov ebx, dword [esp + 0x14]
add ebx, 8
push ebp
push ebx
mov ecx, edi
mov dword [esp + 0x38], ebx
call fcn.00712aac
mov esi, dword [esp + 0x5c]
xor edi, edi
cmp si, di
je 0x5e210a
mov ebp, dword [ebx]
movzx eax, si
mov edx, eax
and edx, 3
or ebp, edx
test eax, 0xfffffffc
mov dword [ebx], ebp
mov ecx, ebp
je 0x5e210a
test cl, 4
jne 0x5e20f9
mov ecx, dword [esp + 0x14]
call fcn.005ddd0c
mov eax, dword [ebx]
and eax, 0xfffffff8
add eax, 6
and esi, 0xfffc
or word [eax], si
mov ebp, dword [esp + 0x18]
lea esi, [ebp + 0x24]
mov ecx, esi
call fcn.0058dd6c
test eax, eax
je 0x5e215b
mov edx, dword [esp + 0x54]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x28]
push edx
push edi
mov ecx, esi
call fcn.0059012c
test eax, eax
je 0x5e215f
mov eax, dword [esp + 0x14]
mov cx, word [esp + 0x38]
mov dx, word [esp + 0x34]
mov word [eax + 4], cx
mov word [eax + 6], dx
jmp 0x5e215f
mov edi, dword [esp + 0x20]
mov ecx, dword [edi + 0x14]
test ecx, ecx
lea ebx, [edi + 0x14]
je 0x5e2180
mov eax, dword [esp + 0x1c]
mov edx, dword [edi + 0x1c]
push eax
mov eax, dword [edi + 0x18]
push edx
push eax
call fcn.005ddb4c
jmp 0x5e2204
cmp dword [edi + 0x1c], 8
jb 0x5e2204
mov eax, dword [ebp + 0x1c]
push 0
push eax
push 0x14
call fcn.007152ec
add esp, 0xc
test eax, eax
je 0x5e21a9
push 0x10
mov ecx, eax
call fcn.005ddacc
jmp 0x5e21ab
xor eax, eax
cmp dword [ebx], eax
jne 0x5e21b7
test eax, eax
jne 0x5e21b7
mov dword [ebx], eax
jmp 0x5e21c1
push eax
push ebx
call fcn.007148fc
add esp, 8
mov eax, dword [edi + 0x20]
xor esi, esi
test eax, eax
jbe 0x5e2204
xor ebp, ebp
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx + ebp + 8]
test al, 4
jne 0x5e21de
test eax, 0xfffffff8
jmp 0x5e21e4
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x5e21f9
mov edx, dword [esp + 0x1c]
push edx
push esi
push ecx
mov ecx, dword [ebx]
call fcn.005ddb4c
mov eax, dword [edi + 0x20]
inc esi
add ebp, 0xc
cmp esi, eax
jb 0x5e21cc
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0x4c]
inc ecx
mov dword [edi + 0x1c], ecx
mov esi, dword [eax + 8]
test esi, esi
mov byte [esp + 0x3c], 1
jne 0x5e221e
xor ebx, ebx
jmp 0x5e2279
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x128]
mov ecx, dword [eax + 0xc74]
mov eax, dword [esp + 0x54]
xor edx, edx
mov dl, byte [ecx + 0x215]
mov ecx, esi
xor edi, edi
push edx
push eax
call fcn.005dd00c
mov ecx, dword [esi + 4]
lea eax, [ecx + eax*8]
cmp dword [eax], 0
je 0x5e2255
mov edi, dword [eax + 4]
test edi, edi
mov ebx, edi
je 0x5e2279
mov esi, dword [esp + 0x30]
test byte [esi], 4
jne 0x5e226d
mov ecx, dword [esp + 0x14]
call fcn.005ddd0c
mov eax, dword [esi]
and eax, 0xfffffff8
add eax, 6
or byte [eax + 1], 8
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 8]
mov edi, esi
mov ebp, esi
and edi, 3
and ebp, 4
jne 0x5e2290
mov eax, edi
jmp 0x5e229c
mov eax, esi
and eax, 0xfffffff8
movzx eax, word [eax + 6]
or ax, di
shr eax, 0xb
test al, 1
je 0x5e24ce
test ebx, ebx
jne 0x5e22bb
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x24]
call fcn.005e15ac
mov ebx, eax
test ebp, ebp
jne 0x5e22c3
mov esi, edi
jmp 0x5e22cd
and esi, 0xfffffff8
movzx esi, word [esi + 6]
or si, di
mov edx, esi
shr edx, 0xc
test dl, 1
je 0x5e232c
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x560]
test eax, eax
je 0x5e232c
cmp byte [eax + 0x39], 8
jae 0x5e232c
lea ecx, [esp + 0x38]
mov eax, 2
push ecx
lea ecx, [ebx + 8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
call fcn.0055c97c
lea edx, [esp + 0x34]
push edx
lea ecx, [ebx + 0xc]
call fcn.0055c97c
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
test al, 4
je 0x5e2327
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xf7
mov byte [esp + 0x12], 0
mov al, byte [esp + 0x12]
test al, al
mov esi, ebx
je 0x5e2346
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x24]
call fcn.005e15ac
mov esi, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x14]
cmp edx, ecx
mov dword [esp + 0x30], ecx
jb 0x5e236b
mov eax, dword [eax + 0x20]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*4]
cmp edx, ecx
mov byte [esp + 0x13], 1
jb 0x5e2370
mov byte [esp + 0x13], 0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
mov edi, dword [esp + 0x20]
mov edx, dword [edi]
mov ecx, edi
mov dword [esp + 0x38], eax
xor ebp, ebp
call dword [edx + 8]
test eax, eax
je 0x5e2395
mov ecx, edi
call fcn.005dffac
mov ebp, eax
test esi, esi
je 0x5e23c5
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x5c]
push ecx
push edx
push esi
mov ecx, edi
call fcn.005e19fc
test ebp, ebp
je 0x5e23c5
push 0
mov ecx, ebp
call fcn.005d895c
test eax, eax
je 0x5e1d43
mov al, byte [ebx + 0x11]
test al, al
jne 0x5e2482
cmp byte [ebx + 0x10], 0x40
ja 0x5e2482
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x18]
push eax
call fcn.005f800c
mov esi, eax
test esi, esi
je 0x5e2482
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
push eax
call fcn.0054c79c
cmp dword [esp + 0x28], 7
jl 0x5e240b
inc byte [ebx + 0x10]
jmp 0x5e240f
mov byte [ebx + 0x11], 1
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x128]
mov ecx, dword [eax + 0xcc0]
push 0
push 0
push 0
push esi
push 0
push 1
push ecx
mov ecx, dword [esp + 0x34]
push 0
push edi
call fcn.005efedc
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x6e0]
test eax, eax
jbe 0x5e245d
dec eax
mov ecx, edx
mov dword [ecx + 0x6e0], eax
mov ecx, dword [ecx + 0x6e8]
mov dword [ecx + eax*4], 2
cmp dword [esp + 0x28], 7
jl 0x5e2469
dec byte [ebx + 0x10]
jmp 0x5e246d
mov byte [ebx + 0x11], 0
test ebp, ebp
je 0x5e2482
push 0
mov ecx, ebp
call fcn.005d895c
test eax, eax
je 0x5e1d43
mov al, byte [esp + 0x13]
test al, al
je 0x5e24ce
mov edx, dword [esp + 0x30]
cmp edx, dword [edi + 0x18]
jne 0x5e24a0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
cmp dword [ecx + 8], eax
je 0x5e24ce
mov al, byte [esp + 0x1c]
test al, al
mov ecx, edi
je 0x5e24b6
mov edx, dword [esp + 0x54]
push edx
call fcn.005df5ac
jmp 0x5e24c2
mov eax, dword [esp + 0x54]
push 0
push eax
call fcn.005df38c
test eax, eax
mov dword [esp + 0x14], eax
je 0x5e1d43
mov edx, dword [esp + 0x28]
cmp edx, 6
mov ecx, dword [esp + 0x5c]
jge 0x5e250d
test cl, cl
js 0x5e24f3
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
test al, 4
je 0x5e24f3
and eax, 0xfffffff8
add eax, 6
and byte [eax], 0x7f
test ch, 4
jne 0x5e250d
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
test al, 4
je 0x5e250d
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xfb
cmp edx, 8
jge 0x5e252c
test ch, 0x10
jne 0x5e252c
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
test al, 4
je 0x5e252c
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xef
mov al, byte [esp + 0x12]
test al, al
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
jne 0x5e255a
mov edx, dword [esp + 0x58]
push edx
push ebp
mov ecx, ebx
call fcn.005dd75c
mov eax, dword [ebp + 8]
test al, 4
je 0x5e255a
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xfe
mov ecx, dword [esp + 0x40]
mov ax, word [ecx]
cmp ax, 0x6f
jne 0x5e25a1
cmp word [ecx + 2], 0x6e
jne 0x5e25a1
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x54]
push esi
push eax
call fcn.0053970c
add esp, 8
cmp eax, 0xffffffff
je 0x5e26c6
mov ecx, eax
mov edx, 1
shl edx, cl
mov byte [esi + 0xc55], 1
or dword [ebx + 0x28], edx
jmp 0x5e26c6
cmp ax, 0x5f
jne 0x5e26c6
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0xd10]
push eax
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.0055dd4c
add esp, 0xc
test al, al
je 0x5e267a
mov edx, dword [ebp]
mov ecx, edx
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x5e25ea
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x5e25f4
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x5e265a
mov eax, edx
mov ecx, eax
and ecx, 7
cmp cl, 7
jne 0x5e260b
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
lea esi, [ebx + 0xc]
and eax, 0xfffffff8
mov edx, esi
push eax
and edx, 0xfffff000
mov edi, dword [edx]
push esi
push esi
mov ecx, edi
call fcn.0055c8cc
push eax
mov ecx, edi
call fcn.0071482c
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0xc55]
test cl, cl
jne 0x5e267a
mov esi, dword [esi]
test esi, esi
je 0x5e267a
mov ecx, dword [esi + 0x28]
test ecx, ecx
jne 0x5e2651
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x5e2641
jmp 0x5e267a
mov byte [eax + 0xc55], 1
jmp 0x5e267a
lea eax, [ebx + 0xc]
mov ecx, eax
and ecx, 0xfffff000
mov esi, dword [ecx]
push 0
push eax
push eax
mov ecx, esi
call fcn.0055c8cc
push eax
mov ecx, esi
call fcn.0071482c
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xd20]
push edx
mov edx, dword [esp + 0x58]
push ecx
push edx
call fcn.0055dd4c
add esp, 0xc
test al, al
je 0x5e26c6
mov ecx, dword [ebp]
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x5e26b3
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x5e26bd
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x5e26c6
or byte [ebx + 0x24], 4
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x7f8]
test ecx, ecx
jne 0x5e2764
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x5e26f8
test byte [ebp + 8], 4
jne 0x5e26ec
mov ecx, ebp
call fcn.005ddd0c
mov eax, dword [ebp + 8]
and eax, 0xfffffff8
add eax, 6
or byte [eax], 0x20
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x60]
add esi, 0x24
test eax, eax
je 0x5e2731
mov eax, dword [esi + 0xa0]
test eax, eax
je 0x5e2731
mov ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x5e2731
mov eax, 2
push eax
push ebp
push eax
push 0
lea ecx, [esp + 0x6c]
push ecx
mov ecx, esi
mov dword [esp + 0x70], eax
call fcn.0059138c
mov eax, dword [ebp + 8]
mov ecx, eax
and ecx, 3
test al, 4
jne 0x5e2741
mov eax, ecx
jmp 0x5e274b
and eax, 0xfffffff8
mov ax, word [eax + 6]
or ax, cx
mov ecx, dword [esp + 0x54]
movzx edx, ax
push edx
mov edx, dword [ebx + 0x48]
lea eax, [esp + 0x5c]
push eax
push ecx
push edx
mov ecx, esi
call fcn.0059170c
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
mov esi, eax
test esi, esi
je 0x5e2894
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x5a0]
test eax, eax
je 0x5e2894
lea edx, [esp + 0x5c]
push edx
mov ecx, ebp
call fcn.005ae15c
mov edx, dword [esp + 0x5c]
mov eax, edx
and eax, 7
cmp eax, 7
mov ecx, edx
jne 0x5e27b0
mov eax, edx
and eax, 0xfffffff8
mov ecx, dword [eax + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x5e27ba
and ecx, 0x1f
mov eax, ecx
cmp eax, 5
je 0x5e2878
mov ecx, dword [ebx + 0x18]
cmp ebp, ecx
mov dword [esp + 0x30], ecx
jb 0x5e27df
mov eax, dword [ebx + 0x20]
lea edx, [eax + eax*2]
lea eax, [ecx + edx*4]
cmp ebp, eax
jae 0x5e27df
mov bl, 1
jmp 0x5e27e1
xor bl, bl
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x18]
push edx
mov dword [esp + 0x44], ecx
push esi
mov ecx, ebp
call fcn.005faacc
mov esi, eax
push esi
lea eax, [esp + 0x40]
push eax
mov ecx, ebp
call fcn.005f742c
test bl, bl
mov ecx, dword [eax]
mov dword [esp + 0x5c], ecx
je 0x5e285a
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
cmp edx, dword [ecx + 0x18]
jne 0x5e282c
mov eax, dword [esp + 0x40]
cmp dword [edi + 8], eax
je 0x5e285a
mov al, byte [esp + 0x1c]
test al, al
je 0x5e2840
mov edx, dword [esp + 0x54]
push edx
call fcn.005df5ac
jmp 0x5e284c
mov eax, dword [esp + 0x54]
push 0
push eax
call fcn.005df38c
mov edi, eax
test edi, edi
mov dword [esp + 0x14], edi
je 0x5e1d43
mov ecx, dword [esp + 0x5c]
push ecx
push ebp
mov ecx, edi
call fcn.005ae81c
push esi
call fcn.007152ac
mov edx, dword [esp + 0x60]
mov ebp, dword [esp + 0x18]
add esp, 4
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp]
push eax
and ecx, 0xfffffff8
push ecx
push edx
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x5b0]
call fcn.005dec9c
pop esi
pop ebx
pop edi
mov eax, ebp
pop ebp
add esp, 0x40
ret 0xc