Function at 0x4c22a0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b04b1
mov eax, dword fs:[0]
push eax
sub esp, 0x6e0
mov eax, dword [0x5fa040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x620], edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x630], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x648], eax
call fcn.004c1230
lea ebx, [ebp - 0x610]
mov dword [ebp - 0x624], 0
mov esi, 0x600
mov edx, dword [ebp - 0x630]
lea edi, [ebp - 0x628]
mov ecx, SysReAllocString
cmp esi, ecx
push edi
mov eax, dword [edx]
cmovb ecx, esi
push ecx
push ebx
push edx
call dword [eax + 0xc]
mov edx, dword [ebp - 0x624]
mov ecx, eax
mov eax, dword [ebp - 0x628]
add edx, eax
mov edi, dword [ebp - 0x620]
add ebx, eax
sub esi, eax
mov dword [ebp - 0x624], edx
test ecx, ecx
jne 0x4c327a
test eax, eax
je 0x4c2351
test esi, esi
jne 0x4c2302
xor ecx, ecx
cmp edx, 0x600
setne cl
jne 0x4c327a
xor eax, eax
nop dword [eax]
nop dword [eax + eax]
cmp byte [ebp + eax - 0x610], 0
jne 0x4c3273
inc eax
cmp eax, 0x400
jb 0x4c2370
mov cl, byte [ebp - 0x210]
mov al, byte [ebp - 0x20f]
mov byte [edi + 0x24], cl
mov byte [edi + 0x25], al
cmp cl, 0x42
jne 0x4c256c
cmp al, 0x44
jne 0x4c256c
cmp byte [ebp - 0x194], 0x48
jne 0x4c3273
cmp byte [ebp - 0x193], 0x2b
jne 0x4c3273
mov edx, dword [ebp - 0x1fc]
mov ecx, 9
bswap edx
cmp edx, 0x200
je 0x4c23f5
nop dword [eax + eax]
cmp ecx, 0x1f
je 0x4c3273
inc ecx
mov eax, 1
shl eax, cl
cmp eax, edx
jne 0x4c23e0
movzx eax, byte [ebp - 0x1fe]
xor edx, edx
shl ax, 8
movzx esi, ax
movzx eax, byte [ebp - 0x1fd]
or esi, eax
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], esi
add esi, 2
mov eax, esi
adc edx, edx
call fcn.005a8080
mov ebx, dword [ebp - 0x620]
mov edi, edx
mov dword [ebp - 0x634], eax
xor edx, edx
mov dword [ebx + 0x68], eax
movzx eax, byte [ebp - 0x192]
shl ax, 8
movzx esi, ax
movzx eax, byte [ebp - 0x191]
or esi, eax
mov dword [ebx + 0x6c], edi
movzx eax, byte [ebp - 0x190]
shl ax, 8
movzx ecx, ax
movzx eax, byte [ebp - 0x18f]
or ecx, eax
lea eax, [esi + 1]
mov dword [ebp - 0x628], ecx
mov ecx, dword [ebx + 0x38]
call fcn.005a8080
movd xmm1, dword [ebp - 0x628]
mov ecx, eax
mov dword [ebx + 0x58], ecx
mov dword [ebx + 0x5c], edx
movd xmm0, dword [ebx + 0x38]
mov dword [ebp - 0x61c], ecx
mov dword [ebp - 0x618], edx
psllq xmm1, xmm0
movq xmm0, qword [ebp - 0x61c]
paddq xmm1, xmm0
movq qword [ebp - 0x61c], xmm1
mov esi, dword [ebp - 0x618]
cmp edi, esi
ja 0x4c24d0
mov eax, dword [ebp - 0x61c]
jb 0x4c24c8
cmp dword [ebp - 0x634], eax
jae 0x4c24d0
mov edi, ebx
mov dword [edi + 0x68], eax
mov dword [edi + 0x6c], esi
push edx
push ecx
mov ecx, dword [ebp - 0x630]
call fcn.00430da0
add esp, 8
test eax, eax
jne 0x4c327c
lea ebx, [ebp - 0x610]
mov dword [ebp - 0x624], eax
mov esi, 0x600
nop dword [eax]
mov edx, dword [ebp - 0x630]
lea edi, [ebp - 0x628]
mov ecx, SysReAllocString
cmp esi, ecx
push edi
mov eax, dword [edx]
cmovb ecx, esi
push ecx
push ebx
push edx
call dword [eax + 0xc]
mov edx, dword [ebp - 0x624]
mov ecx, eax
mov eax, dword [ebp - 0x628]
add edx, eax
mov edi, dword [ebp - 0x620]
add ebx, eax
sub esi, eax
mov dword [ebp - 0x624], edx
test ecx, ecx
jne 0x4c327a
test eax, eax
je 0x4c254f
test esi, esi
jne 0x4c2500
xor ecx, ecx
cmp edx, 0x600
setne cl
jne 0x4c327a
mov al, byte [ebp - 0x20f]
mov cl, byte [ebp - 0x210]
cmp cl, 0x48
jne 0x4c3273
cmp al, 0x2b
je 0x4c2581
cmp al, 0x58
jne 0x4c3273
movzx ecx, byte [ebp - 0x20e]
movzx eax, byte [ebp - 0x20d]
shl cx, 8
or cx, ax
movzx eax, cx
mov word [edi + 0x26], ax
add eax, 0xfffffffc
cmp ax, 1
ja 0x4c3273
mov eax, dword [ebp - 0x200]
mov ecx, dword [ebp - 0x1f0]
bswap eax
mov dword [edi + 0x28], eax
mov eax, dword [ebp - 0x1fc]
bswap eax
mov dword [edi + 0x2c], eax
mov eax, dword [ebp - 0x1ec]
bswap eax
mov dword [edi + 0x34], eax
bswap ecx
mov dword [edi + 0x30], ecx
cmp eax, 0x20000000
ja 0x4c3273
cmp ecx, 0x40000000
ja 0x4c3273
mov ecx, dword [ebp - 0x630]
lea edx, [edi + 0x70]
call fcn.00439b60
test eax, eax
jne 0x4c327c
mov edx, dword [ebp - 0x648]
test edx, edx
je 0x4c2640
mov eax, dword [edi + 0x30]
xor ecx, ecx
add eax, dword [edi + 0x34]
push 0
adc ecx, ecx
add eax, 1
mov dword [ebp - 0x61c], eax
mov eax, dword [edx]
adc ecx, 0
mov dword [ebp - 0x618], ecx
lea ecx, [ebp - 0x61c]
push ecx
push edx
call dword [eax + 0xc]
test eax, eax
jne 0x4c327c
mov edx, dword [ebp - 0x1e8]
mov ecx, 9
bswap edx
cmp edx, 0x200
je 0x4c266a
cmp ecx, 0x1f
je 0x4c3273
inc ecx
mov eax, 1
shl eax, cl
cmp eax, edx
jne 0x4c2655
mov eax, dword [ebp - 0x1e4]
bswap eax
mov dword [edi + 0x3c], eax
mov eax, dword [ebp - 0x1e0]
mov dword [edi + 0x38], ecx
lea ecx, [edi + 0x48]
bswap eax
push str.rsrc
mov dword [edi + 0x40], eax
call fcn.0046d270
xorps xmm0, xmm0
mov dword [ebp - 0x69c], 0
movlpd qword [ebp - 0x6a4], xmm0
mov dword [ebp - 0x698], 0
mov dword [ebp - 0x694], 0
mov dword [ebp - 0x690], 0
mov dword [ebp - 4], 0
movlpd qword [ebp - 0x68c], xmm0
mov dword [ebp - 0x684], 0
mov dword [ebp - 0x680], 0
mov dword [ebp - 0x67c], 0
mov dword [ebp - 0x678], 0
movlpd qword [ebp - 0x674], xmm0
mov dword [ebp - 0x66c], 0
mov dword [ebp - 0x668], 0
mov dword [ebp - 0x664], 0
mov dword [ebp - 0x660], 0
lea eax, [ebp - 0x150]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x6a4]
call fcn.004c0df0
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp - 0x68c]
call fcn.004c0df0
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0x674]
call fcn.004c0df0
push 0x4c5ab0
push fcn.00474510
push 2
push 0xc
lea eax, [ebp - 0x6d4]
push eax
call fcn.00588470
mov byte [ebp - 4], 3
xor ecx, ecx
mov ebx, dword [ebp - 0x694]
xor esi, esi
test ebx, ebx
je 0x4c27b6
mov edx, dword [ebp - 0x698]
add edx, 4
nop dword [eax]
mov eax, dword [edx]
add eax, ecx
cmp eax, ecx
jb 0x4c2b73
inc esi
add edx, 8
mov ecx, eax
cmp esi, ebx
jb 0x4c27a0
mov esi, dword [ebp - 0x69c]
cmp ecx, esi
jne 0x4c2b73
mov ecx, dword [edi + 0x38]
mov eax, esi
xor edx, edx
call fcn.005a8080
cmp dword [ebp - 0x6a0], edx
ja 0x4c2b73
jb 0x4c27ea
cmp dword [ebp - 0x6a4], eax
ja 0x4c2b73
test esi, esi
je 0x4c2b77
mov dword [ebp - 0x61c], 0
mov dword [ebp - 0x618], 0
push dword [ebp - 0x630]
lea eax, [ebp - 0x61c]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x6a4]
mov ecx, edi
push eax
call fcn.004c14c0
mov esi, eax
test esi, esi
je 0x4c2837
mov byte [ebp - 4], 3
push dword [ebp - 0x61c]
jmp 0x4c28af
cmp dword [ebp - 0x618], 0x78
jb 0x4c289f
mov esi, dword [ebp - 0x61c]
mov ecx, 9
mov dword [ebp - 0x63c], ecx
movzx ebx, byte [esi + 0x20]
movzx eax, byte [esi + 0x21]
mov edx, dword [esi + 0x18]
shl ebx, 8
or ebx, eax
bswap edx
mov dword [ebp - 0x624], edx
cmp ebx, 0x200
je 0x4c2888
cmp ecx, 0x10
je 0x4c289f
inc ecx
mov eax, 1
shl eax, cl
mov dword [ebp - 0x63c], ecx
cmp eax, ebx
jne 0x4c2871
mov ebx, dword [esi + 0x24]
mov eax, dword [ebp - 0x618]
bswap ebx
shr eax, cl
mov dword [ebp - 0x640], ebx
cmp eax, ebx
jae 0x4c28cd
mov byte [ebp - 4], 3
mov esi, 1
mov eax, dword [ebp - 0x61c]
push eax
call fcn.00588148
add esp, 4
cmp esi, 1
je 0x4c2b73
test esi, esi
jne 0x4c31d0
jmp 0x4c2b77
test edx, edx
jne 0x4c28e3
push esi
mov byte [ebp - 4], 3
call fcn.00588148
add esp, 4
jmp 0x4c2b77
test ebx, ebx
jne 0x4c28f9
push esi
mov byte [ebp - 4], 3
call fcn.00588148
add esp, 4
jmp 0x4c2b73
push ebx
call fcn.0058813f
mov ebx, eax
mov dword [ebp - 0x62c], ebx
push dword [ebp - 0x640]
mov byte [ebp - 4], 5
push 0
push ebx
call fcn.0058ad30
mov edi, dword [ebp - 0x624]
add esp, 0x10
cmp edi, dword [ebp - 0x640]
jae 0x4c2b5a
cmp byte [ebx + edi], 0
jne 0x4c2b5a
mov eax, dword [ebp - 0x63c]
mov ecx, eax
mov byte [ebx + edi], 1
shl edi, cl
lea ecx, [ebp - 0x65c]
push eax
mov dword [ebp - 0x624], edi
lea eax, [esi + edi]
push eax
call fcn.004c1620
test al, al
je 0x4c2b5a
cmp byte [ebp - 0x658], 0xff
jne 0x4c2b5a
xor ebx, ebx
mov dword [ebp - 0x614], ebx
mov dword [ebp - 0x634], ebx
cmp dword [ebp - 0x654], ebx
jbe 0x4c2b25
mov ecx, dword [ebp - 0x63c]
mov eax, 1
shl eax, cl
xor ecx, ecx
mov dword [ebp - 0x638], eax
mov dword [ebp - 0x628], ecx
mov edx, esi
sub edx, ecx
add edx, eax
movzx eax, byte [edx + edi - 1]
add edx, edi
movzx esi, byte [edx - 2]
movzx ecx, byte [edx - 4]
shl esi, 8
or esi, eax
shl ecx, 8
movzx eax, byte [edx - 3]
or ecx, eax
sub ecx, esi
cmp ecx, 0x4c
jne 0x4c2a3f
add esi, dword [ebp - 0x61c]
add esi, edi
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl ax, 8
or cx, ax
cmp cx, 0xa
jne 0x4c2a3f
mov al, byte [esi + 2]
test al, al
jne 0x4c29fb
lea edi, [ebp - 0x6d4]
jmp 0x4c2a09
cmp al, 0xff
jne 0x4c2af1
lea edi, [ebp - 0x6c8]
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
add esi, 0xc
cmp dword [edi + 4], 0
bswap edx
bswap ecx
mov dword [ebp - 0x64c], edx
mov dword [ebp - 0x644], ecx
je 0x4c2a59
mov ebx, dword [edi + 4]
mov eax, dword [edi]
mov eax, dword [eax + ebx*4 - 4]
mov ebx, dword [ebp - 0x614]
cmp dword [eax], edx
jne 0x4c2a59
cmp ebx, ecx
je 0x4c2aac
push dword [ebp - 0x62c]
call fcn.00588148
mov byte [ebp - 4], 3
push dword [ebp - 0x61c]
jmp 0x4c2b65
mov ecx, edi
call fcn.00439780
push 0x14
call fcn.00587dd8
mov ebx, dword [ebp - 0x644]
mov edx, eax
add esp, 4
mov dword [ebp - 0x650], edx
mov dword [ebp - 0x614], ebx
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], 0
mov ecx, dword [edi + 4]
lea eax, [ecx + 1]
mov dword [edi + 4], eax
mov eax, dword [edi]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x64c]
mov dword [edx], eax
mov dword [edx + 4], ebx
mov ecx, dword [edi + 4]
mov ebx, 8
mov eax, dword [edi]
mov ecx, dword [eax + ecx*4 - 4]
mov dword [ebp - 0x644], ecx
mov edi, dword [esi + 4]
mov eax, dword [esi]
bswap edi
bswap eax
test edi, edi
je 0x4c2ae3
push edi
add ecx, 8
push eax
call fcn.00438fc0
add dword [ebp - 0x614], edi
mov ecx, dword [ebp - 0x644]
add esi, 8
sub ebx, 1
jne 0x4c2ac0
mov edi, dword [ebp - 0x624]
mov eax, dword [ebp - 0x634]
mov ecx, dword [ebp - 0x628]
inc eax
mov esi, dword [ebp - 0x61c]
add ecx, 2
cmp eax, dword [ebp - 0x654]
mov dword [ebp - 0x634], eax
mov eax, dword [ebp - 0x638]
mov dword [ebp - 0x628], ecx
jb 0x4c29a6
mov edi, dword [ebp - 0x65c]
test edi, edi
je 0x4c2b3a
mov ebx, dword [ebp - 0x62c]
jmp 0x4c2922
push dword [ebp - 0x62c]
call fcn.00588148
push esi
mov byte [ebp - 4], 3
call fcn.00588148
mov edi, dword [ebp - 0x620]
add esp, 8
jmp 0x4c2b77
push ebx
call fcn.00588148
mov byte [ebp - 4], 3
push esi
call fcn.00588148
mov edi, dword [ebp - 0x620]
add esp, 8
mov byte [edi + 0x44], 1
mov eax, dword [edi + 0x38]
lea ecx, [ebp - 0x68c]
mov dword [ebp - 0x638], eax
lea eax, [ebp - 0x6d4]
push 4
push eax
call fcn.004c0e50
test al, al
je 0x4c31cb
mov ebx, dword [ebp - 0x67c]
xor ecx, ecx
xor esi, esi
test ebx, ebx
je 0x4c2bc9
mov edx, dword [ebp - 0x680]
add edx, 4
mov eax, dword [edx]
add eax, ecx
cmp eax, ecx
jb 0x4c31cb
inc esi
add edx, 8
mov ecx, eax
cmp esi, ebx
jb 0x4c2bb3
mov eax, dword [ebp - 0x684]
cmp ecx, eax
jne 0x4c31cb
mov ecx, dword [ebp - 0x638]
xor edx, edx
call fcn.005a8080
cmp dword [ebp - 0x688], edx
ja 0x4c31cb
jb 0x4c2bfe
cmp dword [ebp - 0x68c], eax
ja 0x4c31cb
mov eax, dword [edi + 0x38]
lea ecx, [ebp - 0x674]
mov dword [ebp - 0x638], eax
lea eax, [ebp - 0x6d4]
push 8
push eax
call fcn.004c0e50
test al, al
je 0x4c322b
mov ebx, dword [ebp - 0x664]
xor ecx, ecx
xor esi, esi
test ebx, ebx
je 0x4c2c56
mov edx, dword [ebp - 0x668]
add edx, 4
nop word [eax + eax]
mov eax, dword [edx]
add eax, ecx
cmp eax, ecx
jb 0x4c322b
inc esi
add edx, 8
mov ecx, eax
cmp esi, ebx
jb 0x4c2c40
mov esi, dword [ebp - 0x66c]
cmp ecx, esi
jne 0x4c322b
mov ecx, dword [ebp - 0x638]
mov eax, esi
xor edx, edx
call fcn.005a8080
mov ecx, dword [ebp - 0x670]
mov ebx, eax
cmp ecx, edx
ja 0x4c322b
mov eax, dword [ebp - 0x674]
jb 0x4c2c93
cmp eax, ebx
ja 0x4c322b
or eax, ecx
je 0x4c322f
test esi, esi
je 0x4c322f
mov dword [ebp - 0x61c], 0
mov dword [ebp - 0x618], 0
push dword [ebp - 0x630]
lea eax, [ebp - 0x61c]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x674]
mov ecx, edi
push eax
call fcn.004c14c0
mov esi, eax
test esi, esi
je 0x4c2cf3
mov byte [ebp - 4], 3
push dword [ebp - 0x61c]
call fcn.00588148
add esp, 4
jmp 0x4c31d0
cmp dword [ebp - 0x618], 0x78
mov ebx, dword [ebp - 0x61c]
jb 0x4c2d55
movzx edx, byte [ebx + 0x20]
mov ecx, 9
movzx eax, byte [ebx + 0x21]
mov esi, dword [ebx + 0x18]
shl edx, 8
or edx, eax
mov dword [ebp - 0x624], ecx
bswap esi
cmp edx, 0x200
je 0x4c2d3e
cmp ecx, 0x10
je 0x4c2d55
inc ecx
mov eax, 1
shl eax, cl
mov dword [ebp - 0x624], ecx
cmp eax, edx
jne 0x4c2d27
mov edx, dword [ebx + 0x24]
mov eax, dword [ebp - 0x618]
bswap edx
shr eax, cl
mov dword [ebp - 0x628], edx
cmp eax, edx
jae 0x4c2d6c
push ebx
mov esi, 1
mov byte [ebp - 4], 3
call fcn.00588148
add esp, 4
jmp 0x4c31d0
test esi, esi
jne 0x4c2d82
push ebx
mov byte [ebp - 4], 3
call fcn.00588148
add esp, 4
jmp 0x4c322f
test edx, edx
jne 0x4c2d98
push ebx
mov byte [ebp - 4], 3
call fcn.00588148
add esp, 4
jmp 0x4c31cb
push edx
call fcn.0058813f
mov dword [ebp - 0x614], eax
push dword [ebp - 0x628]
push 0
push eax
call fcn.0058ad30
xorps xmm0, xmm0
mov dword [ebp - 0x6e4], 0
add esp, 0x10
movlpd qword [ebp - 0x6ec], xmm0
mov dword [ebp - 0x6e0], 0
mov dword [ebp - 0x6dc], 0
mov dword [ebp - 0x6d8], 0
mov byte [ebp - 4], 8
nop dword [eax]
cmp esi, dword [ebp - 0x628]
jae 0x4c3211
mov eax, dword [ebp - 0x614]
cmp byte [eax + esi], 0
jne 0x4c3211
mov byte [eax + esi], 1
mov eax, dword [ebp - 0x624]
mov ecx, eax
shl esi, cl
lea ecx, [ebp - 0x6bc]
push eax
mov dword [ebp - 0x6b0], esi
lea eax, [ebx + esi]
push eax
call fcn.004c1620
test al, al
je 0x4c3211
cmp byte [ebp - 0x6b8], 0xff
jne 0x4c3211
cmp dword [ebp - 0x6b4], 0
mov dword [ebp - 0x63c], 0
jbe 0x4c314d
mov ecx, dword [ebp - 0x624]
mov eax, 1
shl eax, cl
xor edx, edx
mov dword [ebp - 0x650], eax
mov dword [ebp - 0x62c], edx
mov ecx, ebx
sub ecx, edx
add ecx, eax
movzx eax, byte [ecx + esi - 1]
add ecx, esi
movzx edx, byte [ecx - 2]
movzx ebx, byte [ecx - 4]
shl edx, 8
or edx, eax
shl ebx, 8
movzx eax, byte [ecx - 3]
or ebx, eax
sub ebx, edx
cmp ebx, 0xe
jb 0x4c31a6
add edx, dword [ebp - 0x61c]
add edx, esi
movzx eax, byte [edx]
movzx esi, byte [edx + 1]
shl eax, 8
or esi, eax
mov eax, dword [edx + 4]
bswap eax
mov dword [ebp - 0x644], eax
mov eax, dword [edx + 8]
bswap eax
test eax, eax
je 0x4c2ed6
mov byte [edi + 0x45], 1
jmp 0x4c3113
movzx ecx, byte [edx + 0xc]
movzx eax, byte [edx + 0xd]
shl ecx, 8
or ecx, eax
lea eax, [esi + 2]
mov dword [ebp - 0x64c], ecx
cmp eax, ebx
ja 0x4c31a6
lea eax, [ecx*2 + 0xc]
cmp esi, eax
jne 0x4c31a6
add edx, 0xe
mov eax, 0xfffffff2
mov dword [ebp - 0x6a8], edx
lea edx, [edx + ecx*2]
add ecx, ecx
sub eax, ecx
mov dword [ebp - 0x640], edx
add ebx, eax
mov dword [ebp - 0x634], ebx
cmp ebx, 4
jb 0x4c31a6
mov eax, dword [edx]
mov ecx, dword [ebp - 0x648]
bswap eax
mov dword [ebp - 0x6ac], eax
test ecx, ecx
je 0x4c2f70
test dword [edi + 0x1c], 0xfff
jne 0x4c2f70
mov eax, dword [ecx]
lea edx, [ebp - 0x658]
push 0
push edx
xorps xmm0, xmm0
push ecx
movlpd qword [ebp - 0x658], xmm0
call dword [eax + 0x10]
mov esi, eax
test esi, esi
jne 0x4c317f
cmp dword [edi + 0x1c], 0x80000000
jae 0x4c31a6
lea ebx, [edi + 0x18]
mov ecx, ebx
call fcn.00439780
push 0x38
call fcn.00587dd8
mov dword [ebp - 0x638], eax
mov byte [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
lea edi, [eax + 0x28]
mov byte [ebp - 4], 0xb
push 8
mov dword [edi], 0
call fcn.0058813f
mov edx, dword [ebp - 0x64c]
xor ecx, ecx
mov dword [edi], eax
mov dword [edi + 4], 0
mov dword [edi + 8], 3
mov word [eax], cx
mov ecx, dword [ebp - 0x6a8]
mov byte [ebp - 4], 8
mov esi, dword [ebx + 4]
push edi
lea eax, [esi + 1]
mov dword [ebx + 4], eax
mov eax, dword [ebx]
mov ebx, dword [ebp - 0x638]
mov dword [eax + esi*4], ebx
mov eax, dword [ebp - 0x644]
mov dword [ebx], eax
call fcn.004c16d0
mov eax, dword [ebp - 0x6ac]
add esp, 0xc
cmp eax, 0x20
jne 0x4c306e
cmp dword [ebp - 0x634], 0x58
jne 0x4c31a6
mov esi, dword [ebp - 0x640]
mov eax, dword [esi + 4]
bswap eax
test eax, eax
jne 0x4c31a6
lea eax, [esi + 8]
push eax
lea ecx, [ebx + 0x10]
call fcn.004c0df0
mov byte [ebx + 4], 1
jmp 0x4c310d
cmp eax, 0x10
je 0x4c3082
mov edi, dword [ebp - 0x620]
mov byte [edi + 0x45], 1
jmp 0x4c3113
mov ecx, dword [ebp - 0x634]
cmp ecx, 0x10
jb 0x4c31a6
mov esi, dword [ebp - 0x640]
mov eax, dword [esi + 4]
bswap eax
test eax, eax
jne 0x4c31a6
mov eax, dword [esi + 8]
bswap eax
test eax, eax
jne 0x4c31a6
mov edi, dword [esi + 0xc]
sub ecx, 0x10
bswap edi
add esi, 0x10
cmp ecx, edi
jb 0x4c31a6
cmp edi, dword [ebx + 0xc]
je 0x4c30fc
mov eax, dword [ebx + 8]
test eax, eax
je 0x4c30e0
push eax
call fcn.00588148
add esp, 4
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
test edi, edi
je 0x4c310d
push edi
call fcn.0058813f
add esp, 4
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edi
jmp 0x4c3100
test edi, edi
je 0x4c310d
push edi
push esi
push dword [ebx + 8]
call fcn.0058aed0
add esp, 0xc
mov edi, dword [ebp - 0x620]
mov eax, dword [ebp - 0x63c]
mov edx, dword [ebp - 0x62c]
inc eax
mov esi, dword [ebp - 0x6b0]
add edx, 2
cmp eax, dword [ebp - 0x6b4]
mov ebx, dword [ebp - 0x61c]
mov dword [ebp - 0x63c], eax
mov eax, dword [ebp - 0x650]
mov dword [ebp - 0x62c], edx
jb 0x4c2e77
mov esi, dword [ebp - 0x6bc]
test esi, esi
jne 0x4c2df0
push esi
call fcn.00588148
mov eax, dword [ebp - 0x614]
push eax
call fcn.00588148
push ebx
mov byte [ebp - 4], 3
call fcn.00588148
add esp, 0xc
jmp 0x4c322f
push 0
call fcn.00588148
mov eax, dword [ebp - 0x614]
push eax
call fcn.00588148
mov byte [ebp - 4], 3
push dword [ebp - 0x61c]
call fcn.00588148
add esp, 0xc
jmp 0x4c31d0
push 0
call fcn.00588148
mov eax, dword [ebp - 0x614]
push eax
call fcn.00588148
mov byte [ebp - 4], 3
push dword [ebp - 0x61c]
call fcn.00588148
add esp, 0xc
mov esi, 1
push 0x4c5ab0
push 2
push 0xc
lea eax, [ebp - 0x6d4]
mov byte [ebp - 4], 2
push eax
call fcn.0058835b
push dword [ebp - 0x668]
call fcn.00588148
push dword [ebp - 0x680]
call fcn.00588148
push dword [ebp - 0x698]
call fcn.00588148
add esp, 0xc
mov eax, esi
jmp 0x4c327c
push 0
call fcn.00588148
mov eax, dword [ebp - 0x614]
push eax
call fcn.00588148
mov byte [ebp - 4], 3
push ebx
jmp 0x4c31c3
mov byte [edi + 0x44], 1
mov eax, dword [ebp - 0x648]
mov ecx, edi
push eax
push dword [ebp - 0x630]
lea eax, [ebp - 0x6d4]
push eax
lea eax, [ebp - 0x68c]
push eax
call fcn.004c1740
mov esi, eax
test esi, esi
jne 0x4c31d0
mov eax, dword [edi + 0x3c]
xor edx, edx
mov ecx, dword [edi + 0x38]
call fcn.005a8080
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], edx
jmp 0x4c31d0
mov eax, 1
jmp 0x4c327c
mov eax, ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00587d99
mov esp, ebp
pop ebp
ret 8