Function at 0x4c3ce0
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 + 0x138]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], edi
call fcn.00488bc0
test al, al
je 0x4c3d29
test edi, edi
je 0x4c3d33
push 1
push ebp
mov ecx, edi
call fcn.00411460
test eax, eax
jne 0x4c3d33
pop edi
xor eax, eax
pop ebp
add esp, 0x40
ret 0xc
mov ecx, edi
call fcn.004ce980
mov ecx, dword [edi + 0xc7c]
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 0x4c3d62
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
push ebx
mov ecx, eax
push esi
and ecx, 0xfffffff8
call fcn.00442840
mov dword [esp + 0x40], eax
cmp byte [ebp + 0x25], 7
jne 0x4c3e1e
mov ebx, dword [esp + 0x54]
mov edx, ebx
and edx, 7
cmp dl, 7
mov eax, ebx
jne 0x4c3d92
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
and eax, 0xfffffff8
mov eax, dword [eax + 8]
test eax, eax
je 0x4c3da0
mov esi, dword [eax]
jmp 0x4c3da4
mov esi, dword [esp + 0x54]
test eax, eax
je 0x4c3db9
mov ecx, ebp
call fcn.004c3880
cmp eax, esi
jg 0x4c3e1e
push 1
inc esi
push esi
jmp 0x4c3e17
mov ecx, dword [esp + 0x1c]
mov edx, dword [edi + 0xd24]
push ecx
push edx
push ebx
call fcn.0042bb30
add esp, 0xc
test al, al
je 0x4c3de3
mov eax, dword [esp + 0x58]
push 0
push eax
mov ecx, edi
call fcn.00409210
push eax
jmp 0x4c3e17
cmp dword [esp + 0x28], 7
jge 0x4c3e22
mov edx, dword [esp + 0x40]
push 0
push 0xa
lea ecx, [esp + 0x44]
push ecx
push edx
call fcn.004cc320
add esp, 0x10
test eax, eax
je 0x4c3e1e
mov ecx, ebp
call fcn.004c3880
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jg 0x4c3e1e
push 1
inc ecx
push ecx
mov ecx, ebp
call fcn.004c8880
mov ebx, dword [esp + 0x54]
mov al, byte [esp + 0x1c]
test al, al
mov ecx, ebp
je 0x4c3e34
push ebx
call fcn.004c1680
jmp 0x4c3e3c
push 0
push ebx
call fcn.004c1460
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 0x4c3e93
mov ecx, dword [edx + 8]
mov eax, ecx
and eax, 3
test cl, 4
jne 0x4c3e63
mov ecx, eax
jmp 0x4c3e70
mov ecx, dword [edx + 8]
and ecx, 0xfffffff8
mov cx, word [ecx + 6]
or cx, ax
shr cl, 2
test cl, 1
je 0x4c43bb
test byte [esp + 0x5c], 0x40
jne 0x4c43bb
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 0x4c3f73
mov ecx, ebp
mov dword [esp + 0x30], ebx
call fcn.004c1760
mov esi, eax
cmp esi, ebx
je 0x4c3f73
mov edi, edi
test byte [esi + 0x24], 1
je 0x4c3f3f
mov al, byte [esp + 0x1c]
test al, al
mov ecx, esi
je 0x4c3edc
mov edx, dword [esp + 0x54]
push edx
call fcn.004c1680
jmp 0x4c3ee6
mov eax, dword [esp + 0x54]
push eax
call fcn.004c1610
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, esi
mov edi, eax
call fcn.004c36f0
test edi, edi
mov ebx, eax
je 0x4c3f1b
test ebx, ebx
je 0x4c3f1b
or dword [esp + 0x24], 1
mov edx, dword [ebx + 8]
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], edx
call fcn.00461290
test al, al
jne 0x4c3f1b
mov al, 1
jmp 0x4c3f1d
xor al, al
test byte [esp + 0x24], 1
je 0x4c3f29
and dword [esp + 0x24], 0xfffffffe
test al, al
je 0x4c3f3f
mov ecx, edi
call fcn.004649a0
test al, al
je 0x4c3f62
cmp dword [esp + 0x28], 8
jge 0x4c3f62
mov eax, dword [esp + 0x30]
inc eax
cmp eax, 0x100
mov dword [esp + 0x30], eax
jge 0x4c3fb0
mov ecx, esi
call fcn.004c1760
mov esi, eax
test esi, esi
jne 0x4c3ec0
jmp 0x4c3f73
test edi, edi
mov dword [esp + 0x14], edi
mov byte [esp + 0x12], 1
jne 0x4c43bb
mov edx, dword [ebp + 0x20]
cmp dword [ebp + 0x1c], edx
jb 0x4c4189
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 0x4c3ff9
mov ecx, dword [ebp + 0x18]
mov esi, edx
add ecx, 8
mov dword [esp + 0x14], esi
mov eax, dword [ecx]
test al, 4
jne 0x4c3fe1
test eax, 0xfffffff8
jmp 0x4c3fe7
mov esi, dword [esp + 0x18]
push 0
push 0
push 3
lea ecx, [esi + 0x28]
call fcn.004670f0
mov eax, dword [esi]
push 0x9d
push 3
push esi
call dword [eax + 0xe0]
add esp, 0xc
mov dword [esi + 0x734], 1
jmp 0x4c3f73
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x4c3fef
inc edi
add ecx, 0xc
dec esi
jne 0x4c3fa3
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 0x4c4028
mov ecx, dword [esp + 0x34]
push 3
push 3
add edx, edx
push 0xc
push edx
mov dword [esp + 0x48], edx
call fcn.00603020
mov ebx, eax
jmp 0x4c402c
mov dword [esp + 0x38], edx
mov esi, dword [ebp + 0x18]
xor eax, eax
cmp ebx, esi
mov dword [esp + 0x24], eax
je 0x4c4061
cmp edi, dword [ebp + 0x20]
jne 0x4c4061
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 0x4c40fd
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x44], 2
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], eax
jbe 0x4c40f4
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 0x4c4094
test eax, 0xfffffff8
jmp 0x4c409a
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x4c40e1
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 0x4c40e1
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 0x4c4080
lea ecx, [esp + 0x44]
call fcn.00488d00
mov eax, dword [ebp + 0x18]
cmp ebx, eax
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0x1c], ecx
je 0x4c4115
mov ecx, dword [esp + 0x34]
push eax
call fcn.006041e0
cmp dword [ebp + 0x18], ebx
jne 0x4c4123
test ebx, ebx
jne 0x4c4123
mov dword [ebp + 0x18], ebx
jmp 0x4c4130
lea eax, [ebp + 0x18]
push ebx
push eax
call fcn.00604ea0
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 0x4c4189
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x14]
je 0x4c4189
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 0x4c4189
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x18]
push edi
push esi
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.004bfa00
mov eax, dword [ebp + 0x1c]
inc esi
cmp esi, eax
jb 0x4c4173
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.00488d00
mov eax, dword [esp + 0x54]
mov ecx, eax
and ecx, 7
cmp cl, 7
jne 0x4c41b2
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 + 0x119]
mov esi, ebp
and esi, 0xfffffff8
test al, al
je 0x4c41f9
test esi, esi
je 0x4c41f9
push ebx
call fcn.004611e0
add esp, 4
test eax, eax
je 0x4c41f9
push esi
mov ecx, edi
call fcn.00603e70
test eax, eax
je 0x4c41f9
push esi
push ebx
mov ecx, edi
call fcn.00604920
mov ebx, dword [esp + 0x14]
lea eax, [ebx + 8]
push ebp
push eax
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.006033e0
mov esi, dword [esp + 0x5c]
test si, si
je 0x4c424e
mov edi, dword [esp + 0x30]
mov ebp, dword [edi]
movzx eax, si
mov edx, eax
and edx, 3
or ebp, edx
test eax, 0xfffffffc
mov dword [edi], ebp
mov ecx, ebp
je 0x4c424e
test cl, 4
jne 0x4c423d
mov ecx, ebx
call fcn.004bfbc0
mov eax, dword [edi]
and eax, 0xfffffff8
add eax, 6
and esi, 0xfffc
or word [eax], si
mov ebp, dword [esp + 0x18]
lea esi, [ebp + 0x28]
mov ecx, esi
call fcn.00465700
test eax, eax
mov edi, dword [esp + 0x20]
je 0x4c429b
mov edx, dword [esp + 0x54]
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x3c]
push ecx
push edx
push edi
mov ecx, esi
call fcn.00467a10
test eax, eax
je 0x4c429b
mov ax, word [esp + 0x38]
mov cx, word [esp + 0x34]
mov word [ebx + 4], ax
mov word [ebx + 6], cx
mov ecx, dword [edi + 0x14]
test ecx, ecx
lea ebx, [edi + 0x14]
je 0x4c42bc
mov edx, dword [esp + 0x1c]
mov eax, dword [edi + 0x1c]
push edx
mov edx, dword [edi + 0x18]
push eax
push edx
call fcn.004bfa00
jmp 0x4c4348
cmp dword [edi + 0x1c], 8
jb 0x4c4348
mov eax, dword [ebp + 0x20]
push 0
push eax
push 0x14
call fcn.00605910
add esp, 0xc
test eax, eax
je 0x4c42e5
push 0x10
mov ecx, eax
call fcn.004bf980
jmp 0x4c42e7
xor eax, eax
cmp dword [ebx], eax
jne 0x4c42f3
test eax, eax
jne 0x4c42f3
mov dword [ebx], eax
jmp 0x4c42fd
push eax
push ebx
call fcn.00604ea0
add esp, 8
mov eax, dword [edi + 0x20]
xor esi, esi
test eax, eax
jbe 0x4c4348
xor ebp, ebp
jmp 0x4c4310
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx + ebp + 8]
test al, 4
jne 0x4c4322
test eax, 0xfffffff8
jmp 0x4c4328
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x4c433d
mov eax, dword [esp + 0x1c]
push eax
push esi
push ecx
mov ecx, dword [ebx]
call fcn.004bfa00
mov eax, dword [edi + 0x20]
inc esi
add ebp, 0xc
cmp esi, eax
jb 0x4c4310
inc dword [edi + 0x1c]
mov ecx, dword [edi + 0x4c]
mov esi, dword [ecx + 8]
test esi, esi
mov byte [esp + 0x3c], 1
jne 0x4c435e
xor ebx, ebx
jmp 0x4c43bb
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov ecx, dword [eax + 0x138]
mov edx, dword [ecx + 0xc7c]
mov ecx, dword [esp + 0x54]
xor eax, eax
mov al, byte [edx + 0x215]
xor edi, edi
push eax
push ecx
mov ecx, esi
call fcn.004beec0
mov edx, dword [esi + 4]
mov ecx, dword [edx + eax*8]
test ecx, ecx
lea eax, [edx + eax*8]
je 0x4c4397
mov edi, dword [eax + 4]
test edi, edi
mov ebx, edi
je 0x4c43bb
mov esi, dword [esp + 0x30]
test byte [esi], 4
jne 0x4c43af
mov ecx, dword [esp + 0x14]
call fcn.004bfbc0
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 0x4c43d2
mov eax, edi
jmp 0x4c43de
mov eax, esi
and eax, 0xfffffff8
movzx eax, word [eax + 6]
or ax, di
shr eax, 0xb
test al, 1
je 0x4c4698
test ebx, ebx
jne 0x4c4401
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x24]
call fcn.004c36f0
mov edx, dword [esp + 0x14]
mov ebx, eax
test ebp, ebp
jne 0x4c4409
mov esi, edi
jmp 0x4c4413
and esi, 0xfffffff8
movzx esi, word [esi + 6]
or si, di
mov eax, esi
shr eax, 0xc
test al, 1
je 0x4c4477
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x56c]
test eax, eax
je 0x4c4477
cmp byte [eax + 0x39], 8
jae 0x4c4477
lea edx, [esp + 0x38]
mov esi, 2
push edx
lea ecx, [ebx + 8]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
call fcn.0042a750
lea eax, [esp + 0x34]
push eax
lea ecx, [ebx + 0xc]
call fcn.0042a750
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
test al, 4
je 0x4c446c
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xf7
mov edx, dword [esp + 0x14]
mov byte [esp + 0x12], 0
jmp 0x4c447c
mov esi, 2
mov eax, dword [edx + 8]
mov ecx, eax
and ecx, 3
test al, 4
jne 0x4c448c
mov eax, ecx
jmp 0x4c4496
and eax, 0xfffffff8
movzx eax, word [eax + 6]
or ax, cx
shr eax, 0xd
test al, 1
je 0x4c44f1
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x56c]
test eax, eax
je 0x4c44f1
cmp byte [eax + 0x39], 9
jae 0x4c44f1
lea ecx, [esp + 0x38]
push ecx
lea ecx, [ebx + 8]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
call fcn.0042a750
lea edx, [esp + 0x34]
push edx
lea ecx, [ebx + 0xc]
call fcn.0042a750
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
test al, 4
je 0x4c44e8
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xf7
mov edx, dword [esp + 0x14]
mov byte [esp + 0x12], 0
mov al, byte [esp + 0x12]
test al, al
mov esi, ebx
je 0x4c450f
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x24]
call fcn.004c36f0
mov edx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x18]
cmp edx, ecx
mov dword [esp + 0x30], ecx
jb 0x4c4530
mov eax, dword [eax + 0x20]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*4]
cmp edx, ecx
mov byte [esp + 0x13], 1
jb 0x4c4535
mov byte [esp + 0x13], 0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
mov ebp, dword [esp + 0x20]
mov edx, dword [ebp]
mov ecx, ebp
mov dword [esp + 0x38], eax
xor edi, edi
call dword [edx + 0xc]
test eax, eax
je 0x4c455b
mov ecx, ebp
call fcn.004c20b0
mov edi, eax
test esi, esi
je 0x4c458b
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x5c]
push ecx
push edx
push esi
mov ecx, ebp
call fcn.004c3b40
test edi, edi
je 0x4c458b
push 0
mov ecx, edi
call fcn.004ba670
test eax, eax
je 0x4c3e87
mov al, byte [ebx + 0x11]
test al, al
jne 0x4c4648
cmp byte [ebx + 0x10], 0x40
ja 0x4c4648
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x18]
push eax
call fcn.004dac10
mov esi, eax
test esi, esi
je 0x4c4648
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
push eax
call fcn.00418b30
cmp dword [esp + 0x28], 7
jl 0x4c45d1
inc byte [ebx + 0x10]
jmp 0x4c45d5
mov byte [ebx + 0x11], 1
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x138]
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 ebp
call fcn.004d1b90
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x6f8]
test eax, eax
jbe 0x4c4623
dec eax
mov ecx, edx
mov dword [ecx + 0x6f8], eax
mov ecx, dword [ecx + 0x700]
mov dword [ecx + eax*4], 2
cmp dword [esp + 0x28], 7
jl 0x4c462f
dec byte [ebx + 0x10]
jmp 0x4c4633
mov byte [ebx + 0x11], 0
test edi, edi
je 0x4c4648
push 0
mov ecx, edi
call fcn.004ba670
test eax, eax
je 0x4c3e87
mov al, byte [esp + 0x13]
test al, al
je 0x4c4694
mov edx, dword [esp + 0x30]
cmp edx, dword [ebp + 0x18]
jne 0x4c4666
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
cmp dword [ecx + 8], eax
je 0x4c4694
mov al, byte [esp + 0x1c]
test al, al
mov ecx, ebp
je 0x4c467c
mov edx, dword [esp + 0x54]
push edx
call fcn.004c1680
jmp 0x4c4688
mov eax, dword [esp + 0x54]
push 0
push eax
call fcn.004c1460
test eax, eax
mov dword [esp + 0x14], eax
je 0x4c3e87
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
cmp ecx, 6
mov ebx, dword [esp + 0x5c]
jge 0x4c46cf
test bl, bl
js 0x4c46b9
mov eax, dword [edx + 8]
test al, 4
je 0x4c46b9
and eax, 0xfffffff8
add eax, 6
and byte [eax], 0x7f
test bh, 4
jne 0x4c46cf
mov eax, dword [edx + 8]
test al, 4
je 0x4c46cf
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xfb
cmp ecx, 8
jge 0x4c46ea
test bh, 0x10
jne 0x4c46ea
mov eax, dword [edx + 8]
test al, 4
je 0x4c46ea
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xef
cmp ecx, 9
jge 0x4c4705
test bh, 0x20
jne 0x4c4705
mov eax, dword [edx + 8]
test al, 4
je 0x4c4705
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xdf
mov al, byte [esp + 0x12]
test al, al
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
jne 0x4c4733
mov ecx, dword [esp + 0x58]
push ecx
push ebp
mov ecx, ebx
call fcn.004bf610
mov eax, dword [ebp + 8]
test al, 4
je 0x4c4733
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xfe
mov ecx, dword [esp + 0x40]
mov ax, word [ecx]
cmp ax, 0x6f
jne 0x4c477a
cmp word [ecx + 2], 0x6e
jne 0x4c477a
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x54]
push esi
push edx
call fcn.00402c30
add esp, 8
cmp eax, 0xffffffff
je 0x4c48a5
mov ecx, eax
mov edx, 1
shl edx, cl
mov byte [esi + 0xc5d], 1
or dword [ebx + 0x28], edx
jmp 0x4c48a5
cmp ax, 0x5f
jne 0x4c48a5
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.0042bb30
add esp, 0xc
test al, al
je 0x4c4859
mov edx, dword [ebp]
mov ecx, edx
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x4c47c3
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x4c47cd
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x4c4839
mov eax, edx
mov ecx, eax
and ecx, 7
cmp cl, 7
jne 0x4c47e4
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.0042a6a0
push eax
mov ecx, edi
call fcn.00604dd0
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0xc5d]
test cl, cl
jne 0x4c4859
mov esi, dword [esi]
test esi, esi
je 0x4c4859
lea ebx, [ebx]
mov ecx, dword [esi + 0x28]
test ecx, ecx
jne 0x4c4830
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4c4820
jmp 0x4c4859
mov byte [eax + 0xc5d], 1
jmp 0x4c4859
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.0042a6a0
push eax
mov ecx, esi
call fcn.00604dd0
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.0042bb30
add esp, 0xc
test al, al
je 0x4c48a5
mov ecx, dword [ebp]
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x4c4892
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x4c489c
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x4c48a5
or byte [ebx + 0x24], 4
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x810]
test ecx, ecx
jne 0x4c4943
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x4c48d7
test byte [ebp + 8], 4
jne 0x4c48cb
mov ecx, ebp
call fcn.004bfbc0
mov eax, dword [ebp + 8]
and eax, 0xfffffff8
add eax, 6
or byte [eax], 0x20
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x64]
add esi, 0x28
test eax, eax
je 0x4c4910
mov eax, dword [esi + 0xa4]
test eax, eax
je 0x4c4910
mov ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x4c4910
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.00468cb0
mov eax, dword [ebp + 8]
mov ecx, eax
and ecx, 3
test al, 4
jne 0x4c4920
mov eax, ecx
jmp 0x4c492a
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.00469030
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
mov esi, eax
test esi, esi
je 0x4c4a73
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x5ac]
test eax, eax
je 0x4c4a73
lea edx, [esp + 0x5c]
push edx
mov ecx, ebp
call fcn.00488b30
mov edx, dword [esp + 0x5c]
mov eax, edx
and eax, 7
cmp eax, 7
mov ecx, edx
jne 0x4c498f
mov eax, edx
and eax, 0xfffffff8
mov ecx, dword [eax + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x4c4999
and ecx, 0x1f
mov eax, ecx
cmp eax, 5
je 0x4c4a57
mov ecx, dword [ebx + 0x18]
cmp ebp, ecx
mov dword [esp + 0x30], ecx
jb 0x4c49be
mov eax, dword [ebx + 0x20]
lea edx, [eax + eax*2]
lea eax, [ecx + edx*4]
cmp ebp, eax
jae 0x4c49be
mov bl, 1
jmp 0x4c49c0
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.004dbda0
mov esi, eax
push esi
lea eax, [esp + 0x40]
push eax
mov ecx, ebp
call fcn.004d78f0
test bl, bl
mov ecx, dword [eax]
mov dword [esp + 0x5c], ecx
je 0x4c4a39
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
cmp edx, dword [ecx + 0x18]
jne 0x4c4a0b
mov eax, dword [esp + 0x40]
cmp dword [edi + 8], eax
je 0x4c4a39
mov al, byte [esp + 0x1c]
test al, al
je 0x4c4a1f
mov edx, dword [esp + 0x54]
push edx
call fcn.004c1680
jmp 0x4c4a2b
mov eax, dword [esp + 0x54]
push 0
push eax
call fcn.004c1460
mov edi, eax
test edi, edi
mov dword [esp + 0x14], edi
je 0x4c3e87
mov ecx, dword [esp + 0x5c]
push ecx
push ebp
mov ecx, edi
call fcn.004891f0
push esi
call fcn.006058d0
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 + 0x5bc]
call fcn.004c0d40
pop esi
pop ebx
pop edi
mov eax, ebp
pop ebp
add esp, 0x40
ret 0xc