Function at 0x4499b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x4499e0
test dword [0x87ed4c], 0xffffffff
jne 0x44a680
call fcn.007663a0
jmp fcn.004499b0
push edi
push esi
push ebp
push ebx
sub esp, 0x84
mov esi, edx
mov ebp, dword [esi + 0x1c]
mov edi, dword [esi + 4]
mov dword [esp + 0x68], ecx
lea edx, [ecx + ecx*4]
lea ebp, [ebp + edx*8]
mov ebx, dword [ebp]
mov dword [esp + 0x64], eax
mov eax, dword [esi]
mov dword [esp + 0x74], eax
mov eax, dword [eax]
mov dword [esp + 0x70], eax
mov dword [esp + 0x60], edx
mov edx, 0x168
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x78], edi
call fcn.004a76c0
mov ebx, eax
test ebx, ebx
je 0x44a088
lea edx, [ebx + 0xf]
and edx, 0xfffffff0
pxor xmm0, xmm0
xor eax, eax
movq qword [ebx], xmm0
mov dword [ebx + 8], eax
mov word [ebx + 0xc], ax
mov byte [ebx + 0xe], al
mov eax, 0x150
movq qword [ebx + 0x150], xmm0
movq qword [ebx + 0x158], xmm0
movq qword [ebx + 0x160], xmm0
pxor xmm0, xmm0
movaps xmmword [edx + eax - 0x10], xmm0
movaps xmmword [edx + eax - 0x20], xmm0
movaps xmmword [edx + eax - 0x30], xmm0
movaps xmmword [edx + eax - 0x40], xmm0
movaps xmmword [edx + eax - 0x50], xmm0
movaps xmmword [edx + eax - 0x60], xmm0
movaps xmmword [edx + eax - 0x70], xmm0
sub eax, 0x70
jne 0x449a67
mov ecx, dword [esp + 0x78]
or byte [ebp + 0x12], 0x10
mov dword [ebp + 0xc], ebx
mov eax, ebx
mov edx, dword [esi]
call fcn.0058d420
cmp dword [esp + 0x6c], 0
mov byte [ebx + 0x10], 0x44
je 0x449ae2
mov eax, dword [esp + 0x6c]
movzx edx, byte [eax]
cmp edx, 0x44
jne 0x44a5d1
mov edi, eax
mov eax, ebx
mov ecx, 0x44
mov edx, dword [edi + 8]
call fcn.0044b300
mov eax, ebx
mov ecx, 0x44
mov edx, dword [edi + 0xc]
call fcn.0044b300
mov edi, dword [ebx + 0x14]
dec edi
js 0x449b0a
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x4c], esi
mov eax, ebp
mov edx, ebx
mov ecx, edi
call fcn.0044b4f0
dec edi
jns 0x449af4
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x70]
movzx edx, byte [eax + 0x1e]
test edx, edx
jne 0x44a07d
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
not edx
not eax
mov ecx, dword [ebx + 0x14]
mov edi, dword [ebx + 0x1c]
mov dword [esp + 0x40], eax
mov eax, 0xffffffff
dec ecx
mov dword [esp + 0x58], ecx
mov ecx, eax
mov dword [esp + 0x44], edi
js 0x449dcb
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x5c], ebx
mov ebx, edi
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x4c], esi
movzx eax, word [ebx + 0x10]
mov dword [esp + 0x54], eax
movzx eax, al
test eax, eax
je 0x449bf4
movzx eax, byte [ebx + 0x12]
mov dword [esp + 0x50], eax
test al, 8
jne 0x449d91
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0x78]
mov esi, dword [eax]
mov dword [esp + 0x38], esi
test esi, esi
jle 0x449bac
mov edi, eax
xor eax, eax
mov dword [esp + 0x34], eax
cmp ecx, dword [edi + eax*4 + 4]
je 0x44a114
inc eax
cmp eax, esi
jl 0x449b9d
xor eax, eax
test byte [esp + 0x50], 2
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], eax
jne 0x44a096
mov ecx, dword [esp + 0x3c]
and dword [esp + 0x80], eax
and dword [esp + 0x7c], ecx
and edx, eax
mov esi, 1
xor eax, eax
cmp dword [esp + 0x54], 2
cmove esi, eax
and ebp, ecx
test esi, esi
cmovne edx, eax
cmovne ebp, eax
jmp 0x449d91
mov eax, dword [esp + 0x70]
movzx edx, byte [eax + 0x1e]
test edx, edx
jne 0x449c6c
movzx edx, byte [eax + 0xe2]
test edx, edx
je 0x449c50
movzx edx, word [eax + 0xe0]
cmp edx, 0x160
jl 0x449c50
mov esi, dword [eax + 0xec]
test esi, esi
je 0x449c50
mov eax, dword [esi]
mov ebp, dword [esp + 0x70]
mov edx, dword [ebp + 0xe4]
mov ecx, dword [ebp + 0xe8]
mov dword [ebp + 0xec], eax
inc edx
cmp edx, ecx
cmovge ecx, edx
mov dword [ebp + 0xe4], edx
mov dword [ebp + 0xe8], ecx
jmp 0x449c68
mov eax, 0x160
call fcn.0041ebd4
mov esi, eax
test esi, esi
jne 0x449c68
mov eax, dword [esp + 0x70]
mov byte [eax + 0x1e], 1
test esi, esi
jne 0x449c75
xor edx, edx
xor ebp, ebp
jmp 0x449d91
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x78]
or byte [ebx + 0x12], 0x20
mov dword [ebx + 0xc], esi
mov ebp, 0x200
mov eax, esi
mov word [ebx + 0x10], bp
mov edx, dword [edi]
call fcn.0058d420
mov eax, dword [ebx]
mov dword [esp + 0x24], eax
mov byte [esi + 0x10], 0x45
test eax, eax
je 0x449cd0
movzx edx, byte [eax]
cmp edx, 0x45
jne 0x44a198
mov ebp, eax
mov eax, esi
mov ecx, 0x45
mov edx, dword [ebp + 8]
call fcn.0044b300
mov eax, esi
mov ecx, 0x45
mov edx, dword [ebp + 0xc]
call fcn.0044b300
mov ebp, dword [esi + 0x14]
dec ebp
js 0x449ce8
mov edi, dword [esp + 0x64]
mov eax, edi
mov edx, esi
mov ecx, ebp
call fcn.0044b4f0
dec ebp
jns 0x449cda
mov eax, dword [esp + 0x70]
movzx edx, byte [eax + 0x1e]
test edx, edx
jne 0x449d7c
mov ebp, dword [esi + 0x1c]
mov eax, dword [esi + 0x14]
xor edx, edx
xor esi, esi
xor ecx, ecx
test eax, eax
jle 0x449d82
xor edx, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], ebx
mov eax, dword [ebp]
movzx ecx, byte [eax]
add ecx, 0xffffffb8
cmp ecx, 0x20
jae 0x449d68
mov eax, 1
shl eax, cl
test eax, 0x1f3
je 0x449d68
mov ebx, dword [ebp + 8]
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
test eax, eax
jle 0x449d54
mov edi, dword [esp + 0x78]
xor ecx, ecx
cmp ebx, dword [edi + ecx*4 + 4]
je 0x44a16a
inc ecx
cmp ecx, eax
jl 0x449d45
xor eax, eax
mov dword [esp + 0x18], eax
or esi, eax
mov eax, dword [esp + 0x1c]
or eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
inc edx
add ebp, 0x28
cmp edx, dword [esp + 0x30]
jl 0x449d16
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x44]
jmp 0x449d82
xor edx, edx
xor esi, esi
xor ecx, ecx
and dword [esp + 0x80], esi
and dword [esp + 0x7c], ecx
xor edx, edx
xor ebp, ebp
mov eax, dword [esp + 0x58]
add ebx, 0x28
dec eax
mov dword [esp + 0x58], eax
js 0x449db0
mov eax, dword [esp + 0x80]
or eax, dword [esp + 0x7c]
jne 0x449b61
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x48]
mov dword [ebx + 0x160], eax
or eax, ecx
mov dword [ebx + 0x164], ecx
jne 0x449ddf
xor eax, eax
jmp 0x449de4
mov eax, pe_nt_image_headers32
mov word [ebp + 0x10], ax
mov eax, edx
or eax, dword [esp + 0x40]
je 0x44a07d
mov ecx, 0xffffffff
mov edi, ecx
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], ecx
mov ecx, eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], esi
mov esi, dword [ebx + 0x1c]
mov edi, dword [ebx + 0x14]
mov ebp, edi
dec ebp
js 0x44a07d
mov edx, eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x5c], ebx
mov ebx, dword [esi + 8]
and byte [esi + 0x12], 0xbf
cmp ebx, dword [esp + 0x34]
je 0x449e7c
mov eax, dword [esp + 0x78]
mov ecx, dword [eax]
test ecx, ecx
jle 0x449e62
mov edi, eax
xor eax, eax
mov dword [esp + 0x2c], eax
cmp ebx, dword [edi + eax*4 + 4]
je 0x44a599
inc eax
cmp eax, ecx
jb 0x449e53
xor eax, eax
mov dword [esp + 0x28], eax
and eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
and ecx, dword [esp + 0x40]
or eax, ecx
jne 0x44a57d
dec ebp
add esi, 0x28
inc edx
cmp edx, dword [esp + 0x38]
jb 0x449e34
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x5c]
xor eax, eax
test ebp, ebp
jl 0x44a07d
inc ebp
mov edi, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x34]
lea ebx, [edi + edi*4]
cmp eax, dword [esi + ebx*8 + 8]
je 0x44a058
and byte [esi + ebx*8 + 0x12], 0xbf
inc edi
cmp edi, ebp
jb 0x449ea4
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
mov edi, dword [ebx + 0x14]
mov ebx, dword [ebx + 0x1c]
xor edx, edx
dec edi
mov dword [esp + 0x18], edx
js 0x449efa
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], esi
test byte [ebx + 0x12], 0x40
jne 0x44a30b
add ebx, 0x28
dec edi
jns 0x449ee2
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], 0
xor ecx, ecx
call fcn.0044cfe0
mov ebx, eax
mov edi, dword [esp + 0x74]
mov eax, dword [edi]
mov dword [esp + 0xc], 1
mov edx, 0x48
xor ecx, ecx
call fcn.004e34a0
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [edi]
mov dword [esp + 0xc], 0
mov ecx, ebx
call fcn.004e3960
cmp dword [esp + 0x1c], 0
je 0x44a242
mov edx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
movzx eax, word [edx + 2]
and eax, 1
or word [ebp + 2], ax
movzx ecx, word [edx + 0x20]
mov word [ebp + 0x20], cx
mov dword [ebp + 0x10], ebx
mov ebx, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
cmp ebx, edx
jl 0x449ffd
mov ecx, dword [esi + 0x1c]
mov ebx, dword [esi]
mov eax, dword [ebx]
mov dword [esp + 0x14], ecx
lea edx, [edx + edx*4]
shl edx, 4
mov dword [esp + 0x10], eax
call fcn.004a76c0
mov dword [esi + 0x1c], eax
test eax, eax
jne 0x449fb2
mov eax, dword [esp + 0x10]
mov edx, ebp
call fcn.0044db10
mov ebp, dword [esp + 0x14]
mov dword [esi + 0x1c], ebp
xor ebx, ebx
jmp 0x44a021
mov edx, dword [esi + 0x14]
lea ecx, [edx + edx*4]
shl ecx, 3
push ecx
push dword [esp + 0x18]
push eax
call fcn.007666b0
add esp, 0xc
lea eax, [esi + 0x20]
cmp eax, dword [esp + 0x14]
je 0x449fdf
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
call fcn.004e33d8
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x1c]
call fcn.0044dae0
mov edx, eax
mov ebx, dword [esi + 0x14]
mov eax, 0xcccccccd
mul edx
shr edx, 5
mov dword [esi + 0x18], edx
mov ecx, dword [esi + 0x1c]
lea ebp, [ebx + ebx*4]
lea eax, [ebx + 1]
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x14], eax
mov dword [ecx + ebp*8], edx
mov byte [ecx + ebp*8 + 0x12], 3
mov dword [ecx + ebp*8 + 0x14], esi
mov dword [ecx + ebp*8 + 4], 0xffffffff
mov eax, dword [esp + 0x64]
mov edx, esi
mov ecx, ebx
call fcn.0044b4f0
mov eax, dword [esi + 0x1c]
lea edx, [ebx + ebx*4]
mov ebp, dword [esp + 0x60]
mov ebx, dword [esp + 0x68]
lea ebp, [eax + ebp*8]
mov dword [eax + edx*8 + 4], ebx
mov byte [ebp + 0x13], 1
xor eax, eax
mov word [ebp + 0x10], ax
add esp, 0x84
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0x24]
cmp eax, dword [esi + ebx*8 + 0xc]
je 0x44a50b
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x5c]
xor eax, eax
inc edi
cmp edi, ebp
inc ecx
cmp ecx, 2
jb 0x449e17
add esp, 0x84
pop ebx
pop ebp
pop esi
pop edi
ret
mov dword [ebp + 0xc], ebx
add esp, 0x84
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [ebx + 4]
cmp dword [esp + 0x38], 0
mov ecx, dword [esp + 0x5c]
lea edi, [eax + eax*4]
mov esi, dword [ecx + 0x1c]
mov ecx, dword [esi + edi*8 + 8]
jle 0x44a0c7
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x78]
xor eax, eax
mov dword [esp + 0x20], eax
cmp ecx, dword [edi + eax*4 + 4]
je 0x44a0e2
inc eax
cmp eax, esi
jl 0x44a0bc
xor eax, eax
mov dword [esp + 0x3c], eax
or eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
or ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], ecx
jmp 0x449bc5
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], 0x1f
ja 0x44a103
mov ecx, eax
xor eax, eax
mov esi, 1
shld eax, esi, cl
mov dword [esp + 0x3c], eax
mov eax, esi
shl eax, cl
jmp 0x44a0cd
mov ecx, eax
xor eax, eax
mov esi, 1
shl esi, cl
mov dword [esp + 0x3c], esi
jmp 0x44a0cd
mov dword [esp + 0x34], eax
cmp dword [esp + 0x34], 0x1f
ja 0x44a139
mov ecx, eax
xor eax, eax
mov esi, 1
shld eax, esi, cl
mov dword [esp + 0x28], eax
mov edi, esi
shl edi, cl
mov dword [esp + 0x2c], edi
jmp 0x44a14e
mov ecx, eax
mov dword [esp + 0x2c], 0
mov eax, 1
shl eax, cl
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
test byte [esp + 0x50], 2
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], ecx
jne 0x44a096
jmp 0x449bc5
cmp ecx, 0x1f
ja 0x44a186
xor eax, eax
mov ebx, 1
shld eax, ebx, cl
mov dword [esp + 0x18], eax
mov eax, ebx
shl eax, cl
jmp 0x449d5a
xor eax, eax
mov ebx, 1
shl ebx, cl
mov dword [esp + 0x18], ebx
jmp 0x449d5a
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
cmp eax, edx
jl 0x44a21b
mov ecx, dword [esi + 0x1c]
mov ebp, dword [esi]
mov eax, dword [ebp]
mov dword [esp + 0x14], ecx
lea edx, [edx + edx*4]
shl edx, 4
mov dword [esp + 0x10], eax
call fcn.004a76c0
test eax, eax
jne 0x44a1cd
mov eax, dword [esp + 0x14]
mov dword [esi + 0x1c], eax
jmp 0x449cd0
mov edx, dword [esi + 0x14]
mov dword [esi + 0x1c], eax
lea ecx, [edx + edx*4]
shl ecx, 3
push ecx
push dword [esp + 0x18]
push eax
call fcn.007666b0
add esp, 0xc
lea eax, [esi + 0x20]
cmp eax, dword [esp + 0x14]
je 0x44a1fd
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
call fcn.004e33d8
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x1c]
call fcn.0044dae0
mov edx, eax
mov eax, 0xcccccccd
mul edx
mov eax, dword [esi + 0x14]
shr edx, 5
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x1c]
lea ecx, [eax + eax*4]
inc eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [edx + ecx*8], eax
mov byte [edx + ecx*8 + 0x12], 0
mov dword [edx + ecx*8 + 0x14], esi
mov dword [edx + ecx*8 + 4], 0xffffffff
jmp 0x449cd0
cmp dword [esp + 0x18], 0
je 0x44a047
mov eax, dword [esp + 0x18]
cmp dword [eax], 0
mov esi, dword [eax + 0xc]
jle 0x44a2e0
mov edi, dword [esp + 0x70]
xor ebx, ebx
mov dword [esp + 0x48], ebp
mov ebp, eax
mov edx, dword [esi]
mov eax, edi
call fcn.004cdfe0
mov eax, dword [esi + 4]
test eax, eax
je 0x44a2a1
cmp eax, dword [edi + 0xf0]
jb 0x44a304
cmp eax, dword [edi + 0xf4]
jae 0x44a304
mov edx, dword [edi + 0xec]
mov dword [eax], edx
dec dword [edi + 0xe4]
mov dword [edi + 0xec], eax
mov eax, dword [esi + 8]
test eax, eax
je 0x44a2cc
cmp eax, dword [edi + 0xf0]
jb 0x44a2fd
cmp eax, dword [edi + 0xf4]
jae 0x44a2fd
mov edx, dword [edi + 0xec]
mov dword [eax], edx
dec dword [edi + 0xe4]
mov dword [edi + 0xec], eax
inc ebx
add esi, 0x14
cmp ebx, dword [ebp]
jl 0x44a269
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0xc]
mov eax, dword [esp + 0x70]
mov edx, esi
call fcn.004e33d8
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x18]
call fcn.004e33d8
jmp 0x44a047
call fcn.004c69c4
jmp 0x44a2cc
call fcn.004c69c4
jmp 0x44a2a1
mov ebp, dword [ebx]
mov eax, dword [esp + 0x70]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0xc], 0
xor ecx, ecx
call fcn.0044cfe0
mov esi, eax
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0x18], 0
mov edx, dword [eax]
mov ebp, dword [edx]
je 0x44a4d4
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 4]
mov eax, dword [eax]
cmp edx, eax
jg 0x44a47f
lea eax, [edx + edx]
lea ecx, [eax + edx*8]
mov edx, dword [esp + 0x18]
lea ecx, [ecx*4 + 0x50]
mov edx, dword [edx + 0xc]
mov eax, ebp
call fcn.00490370
mov edx, eax
test edx, edx
jne 0x44a45c
test esi, esi
je 0x44a386
mov eax, ebp
mov edx, esi
call fcn.0044db10
cmp dword [esp + 0x18], 0
je 0x44a454
mov eax, dword [esp + 0x18]
cmp dword [eax], 0
mov edx, dword [eax + 0xc]
jle 0x44a442
xor eax, eax
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x18]
mov esi, edx
mov dword [esp + 0x14], ebx
mov ebx, eax
mov edx, dword [esi]
mov eax, ebp
call fcn.004cdfe0
mov eax, dword [esi + 4]
test ebp, ebp
je 0x44a4cb
test eax, eax
je 0x44a3ec
cmp eax, dword [ebp + 0xf0]
jb 0x44a4c1
cmp eax, dword [ebp + 0xf4]
jae 0x44a4c1
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
dec dword [ebp + 0xe4]
mov dword [ebp + 0xec], eax
mov eax, dword [esi + 8]
test ebp, ebp
je 0x44a4b8
test eax, eax
je 0x44a427
cmp eax, dword [ebp + 0xf0]
jb 0x44a4ae
cmp eax, dword [ebp + 0xf4]
jae 0x44a4ae
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
dec dword [ebp + 0xe4]
mov dword [ebp + 0xec], eax
inc ebx
add esi, 0x14
cmp ebx, dword [edi]
jl 0x44a3a8
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xc]
mov eax, ebp
call fcn.004e33d8
mov edx, dword [esp + 0x18]
mov eax, ebp
call fcn.004e33d8
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x44a4a4
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0xc], edx
mov eax, ebp
call fcn.0044dae0
mov edx, eax
mov ecx, dword [esp + 0x18]
mov eax, 0xcccccccd
mul edx
shr edx, 4
mov eax, dword [ecx]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x18]
lea ebp, [eax + eax*4]
inc eax
mov ecx, dword [edx + 0xc]
mov dword [edx], eax
pxor xmm0, xmm0
movq qword [ecx + ebp*4], xmm0
movq qword [ecx + ebp*4 + 8], xmm0
movd dword [ecx + ebp*4 + 0x10], xmm0
mov dword [ecx + ebp*4], esi
mov eax, dword [ebx]
mov edx, dword [eax + 8]
jmp 0x449eec
call fcn.004c69c4
jmp 0x44a427
test eax, eax
jne 0x44a4ae
jmp 0x44a427
call fcn.004c69c4
jmp 0x44a3ec
test eax, eax
jne 0x44a4c1
jmp 0x44a3ec
mov eax, ebp
mov edx, 0x10
call fcn.004a76c0
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], 0
je 0x44a4f8
pxor xmm0, xmm0
movq qword [eax], xmm0
movq qword [eax + 8], xmm0
jne 0x44a338
test esi, esi
jne 0x44a372
jmp 0x44a37b
mov edx, dword [esi + ebx*8]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x18], edx
call fcn.00588660
mov dword [esp + 0x14], eax
movsx edx, byte [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov dword [esp + 0x1c], edx
call fcn.00588660
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
movsx eax, byte [esp + 0x10]
test edx, edx
je 0x44a56a
cmp edx, eax
je 0x44a56a
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x5c]
xor eax, eax
inc edi
cmp edi, ebp
jb 0x44a073
inc ecx
cmp ecx, 2
jb 0x449e17
jmp 0x44a07d
or byte [esi + ebx*8 + 0x12], 0x40
inc edi
cmp edi, ebp
jb 0x449ea4
jmp 0x449ebf
mov ecx, dword [esp + 0x30]
mov edi, ebx
mov ebx, dword [esp + 0x5c]
mov edx, dword [esi + 0xc]
xor eax, eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], edi
jmp 0x449e91
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x2c], 0x1f
ja 0x44a5bd
mov ecx, eax
xor eax, eax
xor edi, edi
mov eax, 1
shld edi, eax, cl
mov dword [esp + 0x28], edi
shl eax, cl
jmp 0x449e68
mov ecx, eax
xor eax, eax
mov edi, 1
shl edi, cl
mov dword [esp + 0x28], edi
jmp 0x449e68
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0x18]
cmp eax, edx
jl 0x44a653
mov ecx, dword [ebx + 0x1c]
mov edi, dword [ebx]
mov eax, dword [edi]
mov dword [esp + 0x14], ecx
lea edx, [edx + edx*4]
shl edx, 4
mov dword [esp + 0x10], eax
call fcn.004a76c0
test eax, eax
jne 0x44a605
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x1c], eax
jmp 0x449ae2
mov edx, dword [ebx + 0x14]
mov dword [ebx + 0x1c], eax
lea ecx, [edx + edx*4]
shl ecx, 3
push ecx
push dword [esp + 0x18]
push eax
call fcn.007666b0
add esp, 0xc
lea eax, [ebx + 0x20]
cmp eax, dword [esp + 0x14]
je 0x44a635
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
call fcn.004e33d8
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 0x1c]
call fcn.0044dae0
mov edx, eax
mov eax, 0xcccccccd
mul edx
mov eax, dword [ebx + 0x14]
shr edx, 5
mov dword [ebx + 0x18], edx
mov edx, dword [ebx + 0x1c]
lea ecx, [eax + eax*4]
inc eax
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x6c]
mov dword [edx + ecx*8], eax
mov byte [edx + ecx*8 + 0x12], 0
mov dword [edx + ecx*8 + 0x14], ebx
mov dword [edx + ecx*8 + 4], 0xffffffff
jmp 0x449ae2
push edi
push esi
push ebp
push ebx
sub esp, 0x84
mov dword [esp + 0x6c], ecx
mov edi, edx
mov dword [esp + 0x68], eax
mov eax, dword [edi]
mov dword [esp + 0x74], eax
mov eax, dword [eax]
mov dword [esp + 0x70], eax
lea esi, [ecx + ecx*4]
mov dword [esp + 0x64], esi
mov ebp, dword [edi + 0x1c]
lea esi, [ebp + esi*8]
mov ebp, dword [esi]
mov edx, dword [edi + 4]
mov dword [esp + 0x78], edx
mov edx, 0x168
call fcn.004a76c0
mov ebx, eax
test ebx, ebx
je 0x44ad01
push 0x168
push 0
push ebx
call fcn.00766740
add esp, 0xc
mov dword [esi + 0xc], ebx
or byte [esi + 0x12], 0x10
mov eax, ebx
mov edx, dword [edi]
mov ecx, dword [esp + 0x78]
call fcn.0058d420
mov byte [ebx + 0x10], 0x44
test ebp, ebp
je 0x44a722
movzx eax, byte [ebp]
cmp eax, 0x44
jne 0x44b24d
mov eax, ebx
mov edx, dword [ebp + 8]
mov ecx, 0x44
call fcn.0044b300
mov eax, ebx
mov edx, dword [ebp + 0xc]
mov ecx, 0x44
call fcn.0044b300
mov eax, dword [ebx + 0x14]
dec eax
js 0x44a74c
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
mov esi, eax
mov edi, dword [esp + 0x68]
mov eax, edi
mov edx, ebx
mov ecx, esi
call fcn.0044b4f0
dec esi
jns 0x44a736
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x70]
movzx edx, byte [eax + 0x1e]
test edx, edx
jne 0x44acf6
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
not eax
not edx
mov dword [esp + 0x44], edx
mov ecx, dword [ebx + 0x14]
dec ecx
mov dword [esp + 0x4c], ecx
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x48], edx
mov edx, 0xffffffff
mov ecx, edx
js 0x44aa34
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
movzx edx, word [ebx + 0x10]
mov dword [esp + 0x5c], edx
movzx edx, dl
test edx, edx
je 0x44a85a
movzx edx, byte [ebx + 0x12]
mov dword [esp + 0x58], edx
test dl, 8
jne 0x44a9fe
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x78]
mov edi, dword [ecx]
mov dword [esp + 0x38], edi
test edi, edi
jle 0x44a80b
mov dword [esp + 0x34], 0
mov dword [esp + 0x44], esi
mov ecx, dword [esp + 0x34]
mov esi, edi
mov edi, dword [esp + 0x78]
cmp edx, dword [edi + ecx*4 + 4]
je 0x44ad99
inc ecx
cmp ecx, esi
jl 0x44a7f8
mov esi, dword [esp + 0x44]
xor edx, edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x3c], edx
test byte [esp + 0x58], 2
jne 0x44ad0f
and dword [esp + 0x80], edx
mov ecx, dword [esp + 0x3c]
and dword [esp + 0x7c], ecx
and eax, edx
and esi, ecx
xor edx, edx
cmp dword [esp + 0x5c], 2
setne dl
test edx, edx
je 0x44a84a
mov eax, 0
je 0x44a9fe
mov esi, 0
jmp 0x44a9fe
mov eax, dword [esp + 0x70]
movzx edx, byte [eax + 0x1e]
test edx, edx
jne 0x44a8d3
movzx edx, byte [eax + 0xe2]
test edx, edx
je 0x44a8b7
movzx edx, word [eax + 0xe0]
cmp edx, 0x160
jl 0x44a8b7
mov esi, dword [eax + 0xec]
test esi, esi
je 0x44a8b7
mov eax, dword [esi]
mov edi, dword [esp + 0x70]
mov dword [edi + 0xec], eax
mov ecx, dword [edi + 0xe4]
inc ecx
mov dword [edi + 0xe4], ecx
mov edx, dword [edi + 0xe8]
cmp ecx, edx
jge 0x44a8af
mov ecx, edx
mov dword [edi + 0xe8], ecx
jmp 0x44a8cf
mov eax, 0x160
call fcn.0041ebd4
mov esi, eax
test esi, esi
jne 0x44a8cf
mov eax, dword [esp + 0x70]
mov byte [eax + 0x1e], 1
test esi, esi
jne 0x44a8dc
xor eax, eax
xor esi, esi
jmp 0x44a9fe
mov dword [ebx + 0xc], esi
or byte [ebx + 0x12], 0x20
mov edi, 0x200
mov word [ebx + 0x10], di
mov eax, esi
mov edx, dword [esp + 0x54]
mov edx, dword [edx]
mov ecx, dword [esp + 0x78]
call fcn.0058d420
mov eax, dword [ebx]
mov dword [esp + 0x24], eax
mov byte [esi + 0x10], 0x45
test eax, eax
je 0x44a939
movzx edx, byte [eax]
cmp edx, 0x45
jne 0x44ae1d
mov eax, esi
mov edi, dword [esp + 0x24]
mov edx, dword [edi + 8]
mov ecx, 0x45
call fcn.0044b300
mov eax, esi
mov edx, dword [edi + 0xc]
mov ecx, 0x45
call fcn.0044b300
mov edi, dword [esi + 0x14]
dec edi
js 0x44a959
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x68]
mov eax, ebx
mov edx, esi
mov ecx, edi
call fcn.0044b4f0
dec edi
jns 0x44a947
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x70]
movzx edx, byte [eax + 0x1e]
test edx, edx
jne 0x44a9eb
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi + 0x14]
xor edx, edx
xor esi, esi
test ecx, ecx
jle 0x44a9ef
xor eax, eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0x48], ebx
mov ecx, dword [edi]
movzx ecx, byte [ecx]
add ecx, 0xffffffb8
cmp ecx, 0x20
jae 0x44a9d7
mov ebx, 1
shl ebx, cl
test ebx, 0x1f3
je 0x44a9d7
mov ebp, dword [edi + 8]
mov ecx, dword [esp + 0x78]
mov ebx, dword [ecx]
test ebx, ebx
jle 0x44a9cb
xor ecx, ecx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x78]
cmp ebp, dword [edi + ecx*4 + 4]
je 0x44aded
inc ecx
cmp ecx, ebx
jl 0x44a9b8
mov edi, dword [esp + 0x18]
xor ebx, ebx
mov dword [esp + 0x1c], ebx
or edx, ebx
or esi, dword [esp + 0x1c]
inc eax
add edi, 0x28
cmp eax, dword [esp + 0x30]
jl 0x44a985
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
jmp 0x44a9ef
xor edx, edx
xor esi, esi
and dword [esp + 0x80], edx
and dword [esp + 0x7c], esi
xor eax, eax
xor esi, esi
add ebx, 0x28
dec ebp
js 0x44aa15
mov edx, dword [esp + 0x80]
or edx, dword [esp + 0x7c]
jne 0x44a7ad
mov dword [esp + 0x44], esi
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov dword [ebx + 0x160], edx
mov dword [ebx + 0x164], ecx
or edx, ecx
jne 0x44aa48
xor edx, edx
jmp 0x44aa4d
mov edx, pe_nt_image_headers32
mov word [esi + 0x10], dx
mov edx, eax
or edx, dword [esp + 0x44]
je 0x44acf6
mov edx, 0xffffffff
mov dword [esp + 0x2c], edx
xor ecx, ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
xor edx, edx
mov esi, dword [ebx + 0x1c]
mov edi, dword [ebx + 0x14]
mov ebp, edi
dec ebp
js 0x44acf6
mov eax, edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x60], ebx
and byte [esi + 0x12], 0xbf
mov edx, dword [esi + 8]
cmp edx, dword [esp + 0x2c]
je 0x44aae1
mov ecx, dword [esp + 0x78]
mov ebx, dword [ecx]
test ebx, ebx
jle 0x44aac7
xor ecx, ecx
mov edi, dword [esp + 0x78]
cmp edx, dword [edi + ecx*4 + 4]
je 0x44b221
inc ecx
cmp ecx, ebx
jb 0x44aab8
xor ebx, ebx
mov dword [esp + 0x28], ebx
and ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
and ecx, dword [esp + 0x44]
or ebx, ecx
jne 0x44b205
dec ebp
add esi, 0x28
inc eax
cmp eax, dword [esp + 0x34]
jb 0x44aa9b
xor edx, edx
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x60]
test ebp, ebp
jl 0x44acf6
inc ebp
mov edi, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x60], ebx
lea ebx, [edi + edi*4]
mov eax, dword [esp + 0x2c]
cmp eax, dword [esi + ebx*8 + 8]
je 0x44acd1
and byte [esi + ebx*8 + 0x12], 0xbf
inc edi
cmp edi, ebp
jb 0x44ab09
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov ecx, dword [ebx + 0x14]
xor edx, edx
dec ecx
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x18], edx
js 0x44ab6f
mov dword [esp + 0x40], ebp
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
mov ebp, eax
mov edi, ecx
test byte [ebp + 0x12], 0x40
jne 0x44af8f
add ebp, 0x28
dec edi
jns 0x44ab53
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x70]
xor ecx, ecx
call fcn.0044cfe0
mov ebx, eax
mov dword [esp + 0xc], 1
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov edx, 0x48
xor ecx, ecx
call fcn.004e34a0
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x74]
mov eax, dword [eax]
mov edx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.004e3960
cmp dword [esp + 0x1c], 0
je 0x44aec6
movzx eax, word [ebp + 2]
and eax, 1
mov ecx, dword [esp + 0x1c]
or word [ecx + 2], ax
movzx ebp, word [ebp + 0x20]
mov word [ecx + 0x20], bp
mov edx, dword [esp + 0x18]
mov dword [ecx + 0x10], edx
mov ebx, dword [edi + 0x14]
mov edx, dword [edi + 0x18]
cmp ebx, edx
jl 0x44ac76
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x14], ecx
mov ebx, dword [edi]
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
lea edx, [edx + edx*4]
shl edx, 4
call fcn.004a76c0
mov dword [edi + 0x1c], eax
test eax, eax
jne 0x44ac2b
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
call fcn.0044db10
mov eax, dword [esp + 0x14]
mov dword [edi + 0x1c], eax
xor ebx, ebx
jmp 0x44ac9a
mov edx, dword [edi + 0x14]
lea ecx, [edx + edx*4]
shl ecx, 3
push ecx
push dword [esp + 0x18]
push eax
call fcn.007666b0
add esp, 0xc
lea eax, [edi + 0x20]
cmp eax, dword [esp + 0x14]
je 0x44ac58
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
call fcn.004e33d8
mov eax, dword [esp + 0x10]
mov edx, dword [edi + 0x1c]
call fcn.0044dae0
mov edx, eax
mov eax, 0xcccccccd
mul edx
shr edx, 5
mov dword [edi + 0x18], edx
mov ebx, dword [edi + 0x14]
lea ebp, [ebx + ebx*4]
mov ecx, dword [edi + 0x1c]
lea eax, [ebx + 1]
mov dword [edi + 0x14], eax
mov edx, dword [esp + 0x1c]
mov dword [ecx + ebp*8], edx
mov byte [ecx + ebp*8 + 0x12], 3
mov dword [ecx + ebp*8 + 0x14], edi
mov dword [ecx + ebp*8 + 4], 0xffffffff
mov eax, dword [esp + 0x68]
mov edx, edi
mov ecx, ebx
call fcn.0044b4f0
mov eax, dword [edi + 0x1c]
mov esi, dword [esp + 0x64]
lea esi, [eax + esi*8]
lea edx, [ebx + ebx*4]
mov ebx, dword [esp + 0x6c]
mov dword [eax + edx*8 + 4], ebx
mov byte [esi + 0x13], 1
xor eax, eax
mov word [esi + 0x10], ax
add esp, 0x84
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0x24]
cmp eax, dword [esi + ebx*8 + 0xc]
je 0x44b193
xor edx, edx
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x60]
inc edi
cmp edi, ebp
inc ecx
cmp ecx, 2
jb 0x44aa7e
add esp, 0x84
pop ebx
pop ebp
pop esi
pop edi
ret
mov dword [esi + 0xc], ebx
add esp, 0x84
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [ebx + 4]
lea edx, [edx + edx*4]
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx + 0x1c]
mov edx, dword [edi + edx*8 + 8]
cmp dword [esp + 0x38], 0
jle 0x44ad4e
mov dword [esp + 0x20], 0
mov dword [esp + 0x44], esi
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x78]
cmp edx, dword [edi + ecx*4 + 4]
je 0x44ad69
inc ecx
cmp ecx, esi
jl 0x44ad3f
mov esi, dword [esp + 0x44]
xor edx, edx
mov dword [esp + 0x3c], edx
or edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
or ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], ecx
jmp 0x44a824
mov dword [esp + 0x20], ecx
mov esi, dword [esp + 0x44]
xor edi, edi
cmp dword [esp + 0x20], 0x1f
ja 0x44ad8a
mov edx, 1
shld edi, edx, cl
mov dword [esp + 0x3c], edi
shl edx, cl
jmp 0x44ad54
xor edx, edx
mov edi, 1
shl edi, cl
mov dword [esp + 0x3c], edi
jmp 0x44ad54
mov dword [esp + 0x34], ecx
mov esi, dword [esp + 0x44]
cmp dword [esp + 0x34], 0x1f
ja 0x44adbe
xor edi, edi
mov edx, 1
shld edi, edx, cl
mov dword [esp + 0x28], edi
shl edx, cl
mov dword [esp + 0x2c], edx
jmp 0x44add1
mov dword [esp + 0x2c], 0
mov edx, 1
shl edx, cl
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], ecx
test byte [esp + 0x58], 2
jne 0x44ad0f
jmp 0x44a824
mov edi, dword [esp + 0x18]
xor ebp, ebp
cmp ecx, 0x1f
ja 0x44ae0b
mov ebx, 1
shld ebp, ebx, cl
mov dword [esp + 0x1c], ebp
shl ebx, cl
jmp 0x44a9d1
xor ebx, ebx
mov ebp, 1
shl ebp, cl
mov dword [esp + 0x1c], ebp
jmp 0x44a9d1
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
cmp eax, edx
jl 0x44ae9f
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x14], ecx
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [esp + 0x10], eax
lea edx, [edx + edx*4]
shl edx, 4
call fcn.004a76c0
test eax, eax
jne 0x44ae51
mov eax, dword [esp + 0x14]
mov dword [esi + 0x1c], eax
jmp 0x44a939
mov dword [esi + 0x1c], eax
mov edx, dword [esi + 0x14]
lea ecx, [edx + edx*4]
shl ecx, 3
push ecx
push dword [esp + 0x18]
push eax
call fcn.007666b0
add esp, 0xc
lea eax, [esi + 0x20]
cmp eax, dword [esp + 0x14]
je 0x44ae81
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
call fcn.004e33d8
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x1c]
call fcn.0044dae0
mov edx, eax
mov eax, 0xcccccccd
mul edx
shr edx, 5
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x14]
lea ecx, [eax + eax*4]
mov edx, dword [esi + 0x1c]
inc eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [edx + ecx*8], eax
mov byte [edx + ecx*8 + 0x12], 0
mov dword [edx + ecx*8 + 0x14], esi
mov dword [edx + ecx*8 + 4], 0xffffffff
jmp 0x44a939
cmp dword [esp + 0x18], 0
je 0x44acc0
mov eax, dword [esp + 0x18]
mov ebp, dword [eax + 0xc]
cmp dword [eax], 0
jle 0x44af64
xor ebx, ebx
mov dword [esp + 0x50], esi
mov edi, eax
mov esi, dword [esp + 0x70]
mov eax, esi
mov edx, dword [ebp]
call fcn.004cdfe0
mov eax, dword [ebp + 4]
test eax, eax
je 0x44af26
cmp eax, dword [esi + 0xf0]
jb 0x44af88
cmp eax, dword [esi + 0xf4]
jae 0x44af88
mov edx, dword [esi + 0xec]
mov dword [eax], edx
mov dword [esi + 0xec], eax
dec dword [esi + 0xe4]
mov eax, dword [ebp + 8]
test eax, eax
je 0x44af51
cmp eax, dword [esi + 0xf0]
jb 0x44af81
cmp eax, dword [esi + 0xf4]
jae 0x44af81
mov edx, dword [esi + 0xec]
mov dword [eax], edx
mov dword [esi + 0xec], eax
dec dword [esi + 0xe4]
inc ebx
add ebp, 0x14
cmp ebx, dword [edi]
jl 0x44aeed
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
mov ebp, dword [eax + 0xc]
mov eax, dword [esp + 0x70]
mov edx, ebp
call fcn.004e33d8
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x18]
call fcn.004e33d8
jmp 0x44acc0
call fcn.004c69c4
jmp 0x44af51
call fcn.004c69c4
jmp 0x44af26
mov ebx, dword [ebp]
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x70]
mov edx, dword [ebx + 0xc]
xor ecx, ecx
call fcn.0044cfe0
mov esi, eax
mov edx, dword [esp + 0x54]
mov ebx, dword [edx]
mov ebx, dword [ebx]
cmp dword [esp + 0x18], 0
je 0x44b159
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 4]
mov eax, dword [eax]
cmp edx, eax
jg 0x44b103
lea eax, [edx + edx]
lea edx, [eax + edx*8]
lea ecx, [edx*4 + 0x50]
mov eax, ebx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0xc]
call fcn.00490370
mov edx, eax
test edx, edx
jne 0x44b0e0
test esi, esi
je 0x44b00b
mov eax, ebx
mov edx, esi
call fcn.0044db10
cmp dword [esp + 0x18], 0
je 0x44b0d8
mov esi, dword [esp + 0x18]
mov edx, dword [esi + 0xc]
cmp dword [esi], 0
jle 0x44b0c6
xor esi, esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebp
mov ebp, edx
mov edi, dword [esp + 0x18]
mov eax, ebx
mov edx, dword [ebp]
call fcn.004cdfe0
mov eax, dword [ebp + 4]
test ebx, ebx
je 0x44b150
test eax, eax
je 0x44b070
cmp eax, dword [ebx + 0xf0]
jb 0x44b146
cmp eax, dword [ebx + 0xf4]
jae 0x44b146
mov ecx, dword [ebx + 0xec]
mov dword [eax], ecx
mov dword [ebx + 0xec], eax
dec dword [ebx + 0xe4]
mov eax, dword [ebp + 8]
test ebx, ebx
je 0x44b13d
test eax, eax
je 0x44b0ab
cmp eax, dword [ebx + 0xf0]
jb 0x44b133
cmp eax, dword [ebx + 0xf4]
jae 0x44b133
mov ecx, dword [ebx + 0xec]
mov dword [eax], ecx
mov dword [ebx + 0xec], eax
dec dword [ebx + 0xe4]
inc esi
add ebp, 0x14
cmp esi, dword [edi]
jl 0x44b02b
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0xc]
mov eax, ebx
call fcn.004e33d8
mov eax, ebx
mov edx, dword [esp + 0x18]
call fcn.004e33d8
xor edx, edx
mov dword [esp + 0x18], edx
jmp 0x44b128
mov eax, dword [esp + 0x18]
mov dword [eax + 0xc], edx
mov eax, ebx
call fcn.0044dae0
mov edx, eax
mov eax, 0xcccccccd
mul edx
shr edx, 4
mov ebx, dword [esp + 0x18]
mov dword [ebx + 4], edx
mov eax, dword [ebx]
lea edx, [eax + eax*4]
mov ecx, dword [esp + 0x18]
mov ebx, dword [ecx + 0xc]
inc eax
mov dword [ecx], eax
xor eax, eax
mov dword [ebx + edx*4], eax
mov dword [ebx + edx*4 + 4], eax
mov dword [ebx + edx*4 + 8], eax
mov dword [ebx + edx*4 + 0xc], eax
mov dword [ebx + edx*4 + 0x10], eax
mov dword [ebx + edx*4], esi
mov edx, dword [ebp]
mov edx, dword [edx + 8]
jmp 0x44ab5d
call fcn.004c69c4
jmp 0x44b0ab
test eax, eax
jne 0x44b133
jmp 0x44b0ab
call fcn.004c69c4
jmp 0x44b070
test eax, eax
jne 0x44b146
jmp 0x44b070
mov eax, ebx
mov edx, 0x10
call fcn.004a76c0
mov dword [esp + 0x18], eax
cmp dword [esp + 0x18], 0
je 0x44b180
mov edx, 0
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
jne 0x44afbd
test esi, esi
jne 0x44aff7
jmp 0x44b000
mov edx, dword [esi + ebx*8]
mov dword [esp + 0x18], edx
mov eax, dword [edx + 0xc]
call fcn.00588660
mov dword [esp + 0x14], eax
movsx edx, byte [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov dword [esp + 0x1c], edx
call fcn.00588660
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
movsx eax, byte [esp + 0x10]
test edx, edx
je 0x44b1f2
cmp edx, eax
je 0x44b1f2
xor edx, edx
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x60]
inc edi
cmp edi, ebp
jb 0x44acec
inc ecx
cmp ecx, 2
jb 0x44aa7e
jmp 0x44acf6
or byte [esi + ebx*8 + 0x12], 0x40
inc edi
cmp edi, ebp
jb 0x44ab09
jmp 0x44ab24
mov eax, edx
xor edx, edx
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x60]
mov edi, dword [esi + 0xc]
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], eax
jmp 0x44aaf6
cmp ecx, 0x1f
ja 0x44b23b
xor edi, edi
mov ebx, 1
shld edi, ebx, cl
mov dword [esp + 0x28], edi
shl ebx, cl
jmp 0x44aacd
xor ebx, ebx
mov edi, 1
shl edi, cl
mov dword [esp + 0x28], edi
jmp 0x44aacd
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0x18]
cmp eax, edx
jl 0x44b2cf
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x14], ecx
mov eax, dword [ebx]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
lea edx, [edx + edx*4]
shl edx, 4
call fcn.004a76c0
test eax, eax
jne 0x44b281
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x1c], eax
jmp 0x44a722
mov dword [ebx + 0x1c], eax
mov edx, dword [ebx + 0x14]
lea ecx, [edx + edx*4]
shl ecx, 3
push ecx
push dword [esp + 0x18]
push eax
call fcn.007666b0
add esp, 0xc
lea eax, [ebx + 0x20]
cmp eax, dword [esp + 0x14]
je 0x44b2b1
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
call fcn.004e33d8
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 0x1c]
call fcn.0044dae0
mov edx, eax
mov eax, 0xcccccccd
mul edx
shr edx, 5
mov dword [ebx + 0x18], edx
mov eax, dword [ebx + 0x14]
lea ecx, [eax + eax*4]
mov edx, dword [ebx + 0x1c]
inc eax
mov dword [ebx + 0x14], eax
mov dword [edx + ecx*8], ebp
mov byte [edx + ecx*8 + 0x12], 0
mov dword [edx + ecx*8 + 0x14], ebx
mov dword [edx + ecx*8 + 4], 0xffffffff
jmp 0x44a722