Function at 0x4363e4
Capabilities:
Load assembly via iassembly

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x7c0
mov esi, edx
mov eax, dword [edx + 0xb0]
lea ebx, [esp + 0x108]
mov edi, ecx
lea edx, [esp + 0x620]
movsd xmm0, qword [esi + 0xa8]
mov ecx, ebx
mov dword [edx + 8], eax
movsd qword [edx], xmm0
call fcn.0043836e
mov al, byte [ebx]
cmp al, 0x2c
jne 0x43687e
mov ecx, dword [esp + 0x114]
movsd xmm0, qword [esp + 0x10c]
lea eax, [esi + 0xa8]
mov edx, esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x27b], ecx
mov dword [eax + 8], ecx
lea ecx, [esp + 0x94]
movsd qword [esp + 0x273], xmm0
movsd qword [eax], xmm0
call fcn.004383ee
mov edi, dword [esi + 0xa8]
mov ebx, dword [esi + 0xb0]
mov dword [esp + 0x20], esi
mov ecx, edi
mov edx, ebx
call fcn.004a8ee1
test eax, eax
je 0x4368cc
lea edi, [esp + 0x108]
mov esi, edx
mov edx, eax
mov ecx, edi
push esi
call fcn.004a8e19
pop eax
mov eax, dword [edi]
movsd xmm0, qword [edi + 2]
movzx ecx, word [edi + 0xa]
xor edx, edx
mov word [esp + 0x628], cx
shl eax, 0x10
movsd qword [esp + 0x620], xmm0
mov byte [esp + 0xb4], dl
mov byte [esp + 0xb5], cl
mov dword [esp + 0xb6], eax
movsd xmm0, qword [esp + 0x620]
mov eax, dword [esp + 0x628]
movsd qword [esp + 0xba], xmm0
mov dword [esp + 0xc2], eax
mov eax, dword [0x53c010]
cmp eax, 2
je 0x436537
lea ecx, [0x53c014]
lea esi, [esp + 0x270]
mov eax, 0x53c010
lea edx, [esp + 0x3a0]
mov dword [esi], ecx
lea ecx, [esp + 0x108]
mov dword [edx], eax
mov dword [ecx], edx
lea edx, [esp + 0x518]
mov dword [ecx + 4], esi
mov dword [ecx + 8], edx
call fcn.004430fe
mov eax, dword [0x53c014]
lock inc dword [eax]
jle 0x43788f
push 4
pop ebx
mov dword [esp + 0xa0], ebx
and dword [esp + 0xa4], 0
and dword [esp + 0xa8], 0
xor esi, esi
xor ecx, ecx
mov dword [esp + 0xac], eax
mov dword [esp + 8], eax
inc esi
mov edx, esi
call fcn.0049fd22
xor ecx, ecx
mov edx, esi
mov edi, eax
call fcn.0049fd22
mov edx, dword [esp + 8]
and dword [esp + 0x124], 0
and dword [esp + 0x120], 0
and dword [esp + 0x12c], 0
and dword [esp + 0x128], 0
and word [esp + 0x130], 0
mov word [esp + 0x188], 0xa
mov word [esp + 0x1a8], 0x100
and dword [esp + 0x108], 0
mov dword [esp + 0x110], edi
mov dword [esp + 0x114], 0x4e5c10
mov dword [esp + 0x118], eax
mov eax, 0x4000
mov ecx, 0x10000
mov dword [esp + 0x11c], 0x4e5c30
mov dword [esp + 0x180], 2
and dword [esp + 0x18c], 0
and dword [esp + 0x198], 0
and dword [esp + 0x1aa], 0
and dword [esp + 0x1ad], 0
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x138], esi
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], ebx
and dword [esp + 0x144], 0
and dword [esp + 0x148], 0
and dword [esp + 0x14c], 0
mov dword [esp + 0x150], esi
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], ebx
and dword [esp + 0x15c], 0
and dword [esp + 0x160], 0
and dword [esp + 0x164], 0
mov dword [esp + 0x168], esi
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x170], ebx
and dword [esp + 0x174], 0
and dword [esp + 0x178], 0
and dword [esp + 0x17c], 0
xor ecx, ecx
lea esi, [esp + 0x108]
cmp dword [edx + 8], ecx
je 0x4366d4
mov eax, dword [edx + 0xc]
lea ecx, [eax - 0x20]
cmp ecx, 0x3fe5
ja 0x43690f
add eax, 0xfffffffb
mov dword [esp + 0x1a4], eax
lea eax, [esp + 0x390]
mov dword [esp + 0xd4], esi
movsd xmm0, qword [esp + 0xb4]
lea esi, [esp + 0xe8]
movsd xmm1, qword [esp + 0xbc]
mov dword [esp + 0xb0], edx
mov ebx, edx
and dword [eax + 8], 0
mov byte [eax + 0xc], 0
mov dword [eax], 2
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xc4]
lea edi, [ebx + 8]
movsd qword [esi], xmm0
movsd xmm0, qword [esp + 0xa0]
movsd qword [esi + 8], xmm1
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xa8]
movsd qword [esp + 0xc8], xmm0
mov dword [esp + 0xd0], eax
mov ecx, dword [edx + 0x40]
mov eax, dword [edx + 0x3c]
mov edx, dword [ecx + 8]
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
push eax
call dword [ecx + 0x14]
add esp, 4
mov byte [esp + 0x38], al
push 5
pop edx
mov ecx, edi
call fcn.0046b2a3
lea edi, [esp + 0x80]
mov edx, esi
mov byte [esp + 0x10], al
mov ecx, edi
call fcn.004668eb
lea esi, [esp + 0x48]
mov edx, edi
mov ecx, esi
call fcn.0046131c
mov ecx, dword [ebx + 0x34]
mov edx, dword [ebx + 0x38]
call fcn.0045e265
mov ebx, dword [esi]
lea edi, [esp + 0x270]
push dword [esi + 8]
push ebx
push eax
push edi
call dword [edx + 0x14]
add esp, 0x10
mov ecx, dword [edi]
test ecx, ecx
push 2
pop eax
mov dword [esp + 0x74], eax
je 0x43694e
lea esi, [esp + 0x270]
mov dword [esp + 0x14], ebx
mov ebx, ecx
mov edx, dword [esi + 4]
mov edi, dword [esi + 8]
mov dword [esp + 0x30], edx
mov edx, edi
push 0x4e70b8
push eax
call fcn.00466604
pop ecx
pop ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
and dword [esp + 0x60], 0
mov edx, edi
mov dword [esp + 0x28], ebx
mov ecx, ebx
push 0x4e70c8
push 2
pop eax
push eax
call fcn.0045b896
pop ecx
pop ecx
mov dword [esi], eax
mov dword [esi + 4], edx
and dword [esi + 8], 0
mov ecx, esi
call fcn.00461408
cmp ax, 0x179
jne 0x436b80
mov dword [esp + 0x618], 0x3b9aca00
mov ebx, 0x3b9aca00
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
lea edi, [esp + 0x270]
call fcn.004a8f7f
mov edx, dword [esp + 0x4c]
mov ecx, esi
call fcn.004a8f7f
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
call fcn.004a8f7f
jmp 0x43697c
movsd xmm1, qword [esp + 0x110]
movsd xmm0, qword [esp + 0x109]
movsd qword [esp + 0x277], xmm1
movsd qword [esp + 0x270], xmm0
movsd xmm1, qword [esp + 0x277]
movsd xmm0, qword [esp + 0x270]
movsd qword [edi + 0xc], xmm1
movsd qword [edi + 5], xmm0
mov byte [edi + 4], al
mov dword [edi], 2
jmp 0x437262
lea esi, [esp + 0x108]
lea edx, [esp + 0x448]
mov ecx, esi
mov dword [edx], edi
mov dword [edx + 4], ebx
call fcn.0042a4f0
cmp byte [esi], 0
je 0x436bbb
cmp dword [esp + 0x44c], 0
mov edi, dword [esp + 0x18]
jne 0x437211
mov eax, dword [esp + 0x109]
xor ecx, ecx
jmp 0x436c34
lea ecx, [esp + 0x108]
call fcn.00467409
lea ecx, [esp + 0xa0]
call fcn.0045cd06
lea ecx, [esp + 0xb4]
call fcn.0046cf59
lea ecx, [esp + 0xac]
call fcn.0046cf4a
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov bl, 0x16
jmp 0x436fba
mov edx, dword [esp + 0x4c]
mov ecx, ebx
mov dword [esp + 0x618], 0x3b9aca00
call fcn.004a8f7f
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
call fcn.004a8f7f
mov ebx, 0x3b9aca00
cmp byte [esp + 0x10], 0
je 0x436b08
lea esi, [esp + 0x248]
lea edx, [esp + 0xe8]
mov ecx, esi
call fcn.00466a35
lea edi, [esp + 0x58]
mov edx, esi
mov ecx, edi
call fcn.0046131c
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x38]
call fcn.0045e265
mov ecx, dword [edi]
push dword [edi + 8]
mov dword [esp + 0x14], ecx
push ecx
push eax
lea eax, [esp + 0x8c]
push eax
call dword [edx + 0x14]
add esp, 0x10
mov edi, dword [esp + 0x80]
test edi, edi
je 0x436a39
mov eax, dword [esp + 0x88]
lea ecx, [esp + 0x270]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x84]
mov dword [ecx], edi
mov dword [ecx + 4], eax
and dword [ecx + 8], 0
call fcn.00462658
mov dword [esp + 0x14], edx
mov edx, ebx
mov ebx, dword [esp + 0x1c]
mov ecx, edi
mov esi, eax
call fcn.004a8f7f
cmp si, 0xb
je 0x436a39
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 8]
mov ecx, esi
push dword [eax + 0x24]
push dword [eax + 0x1c]
call fcn.0046b328
pop ecx
pop edx
mov edx, eax
test eax, eax
jne 0x436a4c
mov eax, dword [esp + 8]
cmp dword [eax + 0x24], 0
je 0x4378a1
mov eax, dword [eax + 0x1c]
mov edx, dword [eax]
lea esi, [esp + 0x270]
mov ecx, esi
call fcn.0046b359
lea eax, [esp + 0x220]
lea edi, [esp + 0x3a0]
mov edx, esi
mov byte [eax], 0x12
mov ecx, edi
push eax
call fcn.0046b46e
pop eax
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x10]
call fcn.004a8f7f
mov ecx, dword [esp + 0x250]
mov edx, dword [esp + 0x254]
call fcn.004a8f7f
mov eax, dword [edi]
test eax, eax
je 0x436c5b
mov dword [esp + 0x10], eax
lea eax, [esp + 0x3b4]
mov cl, byte [eax - 0x10]
mov byte [esp + 0x14], cl
movzx ecx, word [eax - 0xf]
mov word [esp + 0x48], cx
mov cl, byte [eax - 0xd]
mov byte [esp + 0x4a], cl
mov ecx, dword [eax - 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax - 8]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax - 4]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x518]
push 0x94
push eax
push ecx
call fcn.004ba8e0
add esp, 0xc
movzx eax, word [esp + 0x48]
mov cl, byte [esp + 0x4a]
lea edi, [esp + 0x270]
mov word [esp + 0x44], ax
mov byte [esp + 0x46], cl
jmp 0x436b10
mov dword [esp + 0x10], 0
cmp ebx, 0x3b9aca00
je 0x436b5e
cmp byte [esp + 0x608], 2
je 0x436b5e
cmp dword [esp + 0x5c0], 0
je 0x436b52
lea esi, [esp + 0x270]
mov ecx, esi
call fcn.0046365d
cmp dword [esi], 0
jne 0x436b75
lea esi, [esp + 0x274]
lea edi, [esp + 0x5e4]
push 9
pop ecx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x5e4]
jmp 0x436ca9
lea esi, [esp + 0x270]
mov ecx, esi
call fcn.0046365d
cmp dword [esi], 0
je 0x436ca2
mov esi, dword [esp + 0x20]
mov bl, 0x12
jmp 0x436cdf
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0x10]
mov esi, dword [esi + 0x18]
add ecx, 4
shl esi, 3
test esi, esi
je 0x436833
mov ebx, dword [ecx]
cmp word [ebx], ax
jne 0x436bb3
cmp ax, 0x178
jne 0x43728d
cmp word [ebx + 2], dx
je 0x43728d
add ecx, 8
add esi, 0xfffffff8
jmp 0x436b90
lea esi, [esp + 0x108]
lea edx, [esp + 0x448]
mov ecx, esi
call fcn.0042a840
cmp byte [esi], 0
je 0x43720d
movsd xmm0, qword [esp + 0x10d]
mov ecx, dword [esp + 0x115]
mov eax, dword [esp + 0x109]
cmp dword [esp + 0x44c], 0
mov edi, dword [esp + 0x18]
movsd qword [esp + 0x270], xmm0
mov dword [esp + 0x278], ecx
jne 0x437211
mov ecx, dword [esp + 0x278]
movsd xmm0, qword [esp + 0x270]
mov dword [esp + 0x110], ecx
movsd qword [esp + 0x108], xmm0
mov cl, 1
mov edx, dword [esp + 0x110]
movsd xmm0, qword [esp + 0x108]
mov dword [esp + 0x628], edx
mov dl, 1
movsd qword [esp + 0x620], xmm0
jmp 0x4364c0
movzx eax, word [esp + 0x3a5]
mov cl, byte [esp + 0x3a7]
mov edx, dword [esp + 0x3a8]
mov edi, dword [esp + 0x3ac]
mov esi, dword [esp + 0x3b0]
mov bl, byte [esp + 0x3a4]
mov word [esp + 0x48], ax
mov dword [esp + 0x38], edx
mov dword [esp + 8], edi
mov dword [esp + 0x10], esi
mov word [esp + 0x40], ax
mov byte [esp + 0x42], cl
jmp 0x436cd4
lea esi, [esp + 0x274]
push 9
pop ecx
lea edi, [esp + 0x4f4]
xorps xmm0, xmm0
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x270]
movaps xmmword [ecx + 0x10], xmm0
movaps xmmword [ecx], xmm0
push 0x20
pop edx
call fcn.0045345c
test al, al
je 0x436d51
mov bl, 0x12
mov esi, dword [esp + 0x20]
lea edi, [esp + 0x270]
lea ecx, [esp + 0x5b0]
call fcn.0046cf3c
xor ecx, ecx
xor edx, edx
inc ecx
call fcn.004a8f7f
lea ecx, [esp + 0xb0]
call fcn.0046cf4a
lea ecx, [esp + 0xc8]
call fcn.0045cd06
lea ecx, [esp + 0xe8]
call fcn.0046cf59
cmp bl, 0x17
je 0x436efc
movzx ecx, word [esp + 0x40]
mov al, byte [esp + 0x42]
mov word [esp + 0x24], cx
lea ecx, [esp + 0x108]
mov byte [esp + 0x26], al
call fcn.00467409
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
jmp 0x436fba
lea eax, [esp + 0x284]
movaps xmm0, xmmword [eax - 0x14]
movaps xmm1, xmmword [eax - 4]
lea eax, [esp + 0x220]
movaps xmmword [eax + 0x10], xmm1
movaps xmmword [eax], xmm0
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x44]
mov edx, dword [eax + 0x48]
call fcn.0045e265
push eax
call dword [edx + 0x20]
add esp, 4
mov byte [esp + 0x2c], al
push 0x1c
pop ecx
lea edi, [esp + 0x3a0]
lea esi, [esp + 0x5b0]
lea edx, [esp + 0x58]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x24c]
mov al, byte [esp + 0x38]
xor ecx, ecx
inc ecx
mov dword [edx], ecx
and dword [edx + 4], 0
and dword [edx + 8], 0
mov byte [edx + 0xc], al
movzx eax, word [esp + 0x7d]
mov dword [edi - 4], ecx
mov word [edx + 0xd], ax
mov al, byte [esp + 0x7f]
mov byte [edx + 0xf], al
lea eax, [esp + 0xdc]
push 2
pop ebx
mov dword [eax], ebx
and dword [eax + 4], 0
and dword [eax + 8], 0
push 9
pop ecx
lea esi, [esp + 0x4f4]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x284]
mov eax, dword [esp + 0xf8]
movsd xmm0, qword [esp + 0xe8]
movsd xmm1, qword [esp + 0xf0]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x10]
movsd qword [esp + 0x88], xmm1
movsd qword [esp + 0x80], xmm0
mov dword [ecx - 0x14], eax
mov al, byte [esp + 0x14]
mov byte [ecx - 0x10], al
movzx eax, word [esp + 0x44]
mov word [ecx - 0xf], ax
mov al, byte [esp + 0x46]
mov byte [ecx - 0xd], al
mov eax, dword [esp + 0x28]
mov dword [ecx - 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [ecx - 8], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx - 4], eax
lea eax, [esp + 0x518]
push 0x94
push eax
push ecx
call fcn.004ba8e0
add esp, 0xc
mov eax, dword [esp + 0xd0]
movsd xmm0, qword [esp + 0xc8]
mov dword [esp + 0x50], eax
movsd qword [esp + 0x48], xmm0
sub esp, 4
movzx eax, byte [esp + 0x30]
mov ecx, dword [esp + 0xc]
lea esi, [esp + 0x24c]
lea edx, [esp + 0xd8]
push ebx
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x280]
push eax
lea eax, [esp + 0x94]
push eax
push 0
push esi
lea eax, [esp + 0xfc]
push eax
push 0
lea eax, [esp + 0x80]
push eax
push 0
lea eax, [esp + 0x250]
push eax
lea eax, [esp + 0x3d4]
push eax
call fcn.0046b4a4
add esp, 0x38
mov esi, dword [esp + 0x20]
lea edi, [esp + 0x270]
mov dword [esp + 0x38], eax
mov dword [esp + 8], edx
lea eax, [esp + 0x11c]
movsd xmm0, qword [esp + 0x390]
movsd xmm1, qword [esp + 0x398]
mov cl, byte [eax - 0x10]
mov ebx, dword [eax - 0x14]
movsd qword [esp + 0x314], xmm1
movsd qword [esp + 0x30c], xmm0
mov byte [esp + 0x14], cl
movzx ecx, word [eax - 0xf]
mov word [esp + 0x24], cx
mov cl, byte [eax - 0xd]
mov byte [esp + 0x26], cl
mov ecx, dword [eax - 0xc]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax - 8]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax - 4]
mov dword [esp + 0x10], ecx
mov ecx, 0x9c
push ecx
push eax
push edi
call fcn.004ba8e0
add esp, 0xc
xor edx, edx
mov ecx, 0x4805
inc edx
call fcn.0049fd22
push 0x4805
push 0
mov dword [esp + 0x24], eax
push eax
call fcn.004bae60
add esp, 0xc
lea eax, [esp + 0x448]
push 0xac
push edi
push eax
call fcn.004ba8e0
add esp, 0xc
cmp ebx, 2
jne 0x436ff7
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov bl, byte [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [esp + 8], eax
movzx eax, word [esp + 0x24]
mov byte [ecx + 4], bl
mov word [esp + 0x34], ax
movzx eax, word [esp + 0x34]
mov word [ecx + 5], ax
mov al, byte [esp + 0x26]
mov byte [esp + 0x36], al
mov al, byte [esp + 0x36]
mov byte [ecx + 7], al
mov dword [ecx + 8], edi
mov edi, dword [esp + 8]
mov dword [ecx + 0xc], edi
mov dword [ecx + 0x10], edx
mov dword [ecx], 2
jmp 0x43723e
mov al, byte [esp + 0x26]
mov edi, ebx
mov ebx, esi
lea esi, [esp + 0x634]
mov byte [esp + 0x3e], al
movzx eax, word [esp + 0x24]
mov word [esp + 0x3c], ax
push 0xac
lea eax, [esp + 0x44c]
push eax
push esi
call fcn.004ba8e0
add esp, 0xc
mov word [esi + 0xac], 4
mov dword [esi + 0xb0], 1
and dword [esi + 0xb4], 0
and dword [esi + 0xb8], 0
push 4
pop ecx
movzx eax, word [esp + 0x7a]
mov dword [esi + 0xbc], ecx
and dword [esi + 0xc0], 0
and dword [esi + 0xc4], 0
and dword [esi + 0xc8], 0
mov byte [esi + 0xcc], 0x17
mov edx, dword [esp + 0x28]
mov word [esi + 0xcd], ax
mov al, byte [esp + 0x7c]
mov byte [esi + 0xcf], al
mov eax, dword [esp + 0x38]
mov dword [esi + 0xd0], eax
mov eax, dword [esp + 8]
mov dword [esi + 0xd4], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0xdc], ecx
and dword [esi + 0xe0], 0
and dword [esi + 0xe4], 0
and dword [esi + 0xe8], 0
mov cl, byte [esp + 0x3e]
mov dword [esi + 0xec], eax
mov eax, dword [esp + 0x104]
and dword [esi + 0xf0], 0
mov byte [esi + 0xf4], 0
mov byte [esp + 0x36], cl
mov dword [esi + 0xf8], eax
mov eax, dword [esp + 0x101]
mov dword [esi + 0xf5], eax
mov al, byte [esp + 0x14]
mov byte [esi - 0x10], al
movzx eax, word [esp + 0x3c]
mov byte [esi - 0xd], cl
mov word [esi - 0xf], ax
mov dword [esi - 0xc], edx
mov edx, dword [esp + 0x30]
mov word [esp + 0x34], ax
mov dword [esi - 8], edx
mov edx, dword [esp + 0x10]
mov dword [esi - 4], edx
mov dword [esi - 0x14], edi
lea esi, [esp + 0x108]
mov edx, ebx
mov ecx, esi
call fcn.00438749
mov al, byte [esi]
cmp al, 0x2c
jne 0x4371ba
lea esi, [esp + 0x108]
mov eax, dword [esi + 4]
mov dword [esp + 8], eax
mov eax, pe_nt_image_headers32
push eax
lea eax, [esp + 0x624]
push eax
mov edi, ebx
lea ebx, [esp + 0x278]
push ebx
call fcn.004ba8e0
add esp, 0xc
mov eax, dword [esp + 8]
mov edx, dword [edi + 0xd0]
mov ecx, esi
mov dword [esp + 0x380], eax
push dword [edi + 0xd8]
push dword [edi + 0xd4]
call fcn.00439907
pop eax
pop ecx
mov edi, dword [esi + 8]
mov eax, dword [esi]
mov esi, dword [esi + 4]
cmp edi, 0x3b9aca01
jne 0x437325
mov ecx, dword [esp + 0x18]
mov byte [ecx + 4], 0x19
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], esi
mov dword [ecx], 2
jmp 0x437653
mov cl, byte [esp + 0x10b]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10c]
mov esi, dword [esp + 0x110]
mov byte [edi + 7], cl
movzx ecx, word [esp + 0x109]
mov word [edi + 5], cx
mov ecx, dword [esp + 0x114]
mov byte [edi + 4], al
lea eax, [esp + 0x620]
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
mov dword [edi + 0x10], ecx
mov dword [edi], 2
push eax
call fcn.0043a811
pop eax
mov esi, ebx
jmp 0x43723e
mov edi, dword [esp + 0x18]
xor edx, edx
xor ecx, ecx
lea esi, [edi + 8]
inc edx
call fcn.00407dd1
push 0x27
pop edx
mov ecx, esi
push 0x4df4c0
push eax
call fcn.00488440
pop eax
pop ecx
mov esi, dword [esp + 0x20]
mov byte [edi + 4], 0x19
mov dword [edi], 2
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
call fcn.004a8f7f
mov ecx, dword [esi + 0xa8]
mov edx, dword [esi + 0xac]
call fcn.004a8f7f
mov ecx, dword [esi + 0xb4]
mov edx, dword [esi + 0xb8]
call fcn.004a8f7f
lea ecx, [esi + 0xc0]
call fcn.004361b2
mov ecx, esi
call fcn.004361fb
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [ecx - 4], 0
je 0x43747f
lea ecx, [esp + 0x58]
call fcn.0046262e
test eax, eax
je 0x436833
lea ecx, [esp + 0x58]
mov esi, edx
call fcn.0046262e
test eax, eax
je 0x436833
mov dword [esp + 0x2c], esi
lea esi, [esp + 0x270]
mov edi, edx
lea edx, [esp + 0x58]
mov ecx, esi
call fcn.00466a4f
mov edx, dword [esi + 8]
test edx, edx
je 0x436833
lea esi, [esp + 0x27c]
mov dword [esp + 0x70], edi
mov eax, dword [esi - 0xc]
mov dword [esp + 0x6c], eax
mov eax, dword [esi - 8]
mov dword [esp + 0x68], eax
push 9
pop ecx
lea eax, [esp + 0x3a0]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x518]
push 9
pop ecx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0xf], 2
mov ebx, dword [esp + 0x2c]
jmp 0x437584
mov edx, dword [esp + 0x380]
mov ecx, ebx
mov ebx, pe_nt_image_headers32
add ebx, ecx
lea ecx, [esp + 0x448]
push edi
mov edi, ecx
push esi
push eax
call fcn.0048a870
add esp, 0xc
mov ecx, edi
call fcn.0043e8bd
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x437676
lea edi, [esp + 0x270]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x108]
mov edx, edi
push ebx
call fcn.0043da06
pop eax
cmp byte [esp + 0x108], 4
je 0x4373a7
mov ebx, dword [esp + 0x108]
cmp bl, 4
jne 0x437440
push dword [esp + 8]
push dword [esp + 0x14]
push edi
lea ebx, [esp + 0x114]
push ebx
call fcn.0046746d
add esp, 0x10
cmp byte [esp + 0x108], 4
jne 0x4373d3
mov edi, dword [esp + 0x10c]
jmp 0x4373ed
mov ebx, dword [esp + 0x108]
mov edi, dword [esp + 0x10c]
cmp bl, 4
jne 0x437447
lea ebx, [esp + 0x108]
mov ecx, ebx
lea edx, [esp + 0x270]
push dword [esp + 0x380]
call fcn.0043da6c
pop eax
cmp dword [esp + 0x108], 0
je 0x43741b
lea eax, [esp + 0x10c]
push eax
call fcn.00405b29
pop eax
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 8]
test edi, edi
je 0x437631
mov eax, edx
sub eax, edi
jb 0x437893
add dword [esp + 0x10], edi
mov ecx, eax
jmp 0x43736a
mov edi, dword [esp + 0x10c]
lea esi, [esp + 0x448]
mov dword [esp + 0x448], ebx
mov dword [esp + 0x44c], edi
mov ecx, esi
call fcn.0049fd80
cmp al, 0x23
jne 0x437668
push esi
call fcn.00405b29
pop eax
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 8]
jmp 0x43736a
lea esi, [esp + 0x270]
lea edx, [esp + 0x58]
mov ecx, esi
call fcn.00463590
cmp dword [esi], 0
je 0x436833
mov eax, dword [esp + 0x27c]
movsd xmm0, qword [esp + 0x280]
movsd xmm2, qword [esp + 0x288]
movsd xmm1, qword [esp + 0x290]
mov edi, dword [esp + 0x274]
mov esi, dword [esp + 0x278]
lea ecx, [esp + 0x58]
mov dword [esp + 0x2c], eax
movsd qword [esp + 0x3a0], xmm0
movsd qword [esp + 0x3a8], xmm2
movsd qword [esp + 0x3b0], xmm1
call fcn.0045e579
test al, 1
je 0x436833
mov dword [esp + 0x1c], esi
lea esi, [esp + 0x270]
mov byte [esp + 0xf], dl
lea edx, [esp + 0x58]
mov ecx, esi
call fcn.00466a4f
mov edx, dword [esi + 8]
test edx, edx
je 0x436833
lea esi, [esp + 0x27c]
mov dword [esp + 0x70], edi
mov eax, dword [esi - 0xc]
mov ecx, dword [esi - 8]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ecx
push 9
pop ecx
lea edi, [esp + 0x518]
rep movsd dword es:[edi], dword [esi]
movsd xmm1, qword [esp + 0x3a8]
cmp byte [esp + 0xf], 1
movsd xmm0, qword [esp + 0x3a0]
movsd qword [esp + 0x228], xmm1
movsd xmm1, qword [esp + 0x3b0]
sete byte [esp + 0xf]
movsd qword [esp + 0x220], xmm0
movsd qword [esp + 0x230], xmm1
mov ecx, dword [esp + 0x6c]
lea eax, [esp + 0x3ac]
mov dword [eax - 0xc], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax - 8], ecx
mov dword [eax - 4], edx
push 9
pop ecx
lea esi, [esp + 0x518]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax + 0x24], ebx
lea esi, [esp + 0x248]
mov ecx, dword [esp + 0x70]
movsd xmm0, qword [esp + 0x220]
movsd xmm1, qword [esp + 0x228]
mov dword [eax + 0x28], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x30], ecx
movsd qword [eax + 0x34], xmm0
movsd xmm0, qword [esp + 0x230]
mov cl, byte [esp + 0xf]
movsd qword [eax + 0x3c], xmm1
movsd qword [eax + 0x44], xmm0
mov byte [eax + 0x4c], cl
mov ecx, dword [esp + 0xdc]
mov dword [eax + 0x4d], ecx
mov ecx, dword [esp + 0xdf]
mov dword [eax + 0x50], ecx
mov ecx, esi
call fcn.0046aaff
mov eax, dword [esi]
or eax, dword [esi + 4]
je 0x4377ea
lea ecx, [esp + 0x3a0]
call fcn.0046b304
jmp 0x436833
xor eax, eax
mov edi, 0x4ea5f8
movzx ecx, byte [esp + 0x74]
mov edx, dword [esp + 0x18]
or ecx, eax
mov byte [edx + 4], 0x19
mov dword [edx + 0xc], edi
mov dword [edx + 8], ecx
mov dword [edx], 2
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x270]
call fcn.0043a7fb
jmp 0x43723e
cmp bl, 4
je 0x437676
cmp bl, 4
jne 0x43787f
mov eax, 0x118
push eax
lea eax, [esp + 0x274]
push eax
lea edi, [esp + 0x110]
push edi
call fcn.004ba8e0
add esp, 0xc
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0xd0]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0xd4]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0xd8]
mov dword [esp + 0x10], eax
push 8
pop edx
mov ecx, 0x118
call fcn.00407dd1
mov esi, eax
mov eax, 0x118
push eax
push edi
push esi
call fcn.004ba8e0
add esp, 0xc
lea edx, [esp + 0x3a0]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [edx + 0x10], esi
mov esi, dword [esp + 8]
mov dword [edx + 4], eax
mov dword [edx], esi
lea esi, [esp + 0x448]
mov dword [edx + 8], ecx
mov dword [edx + 0x20], 0x3b9aca01
mov ecx, esi
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
push dword [ebx + 0x14]
push dword [ebx + 0x10]
call fcn.00439917
add esp, 0x10
mov edx, dword [esi]
cmp edx, 2
jne 0x43775b
movsd xmm0, qword [esp + 0x44c]
movsd xmm1, qword [esp + 0x454]
mov eax, dword [esp + 0x18]
movsd qword [esp + 0x520], xmm1
movsd qword [esp + 0x518], xmm0
movsd qword [eax + 0xc], xmm1
movsd qword [eax + 4], xmm0
mov dword [eax], 2
jmp 0x437209
lea esi, [esp + 0x45c]
lea eax, [esp + 0x744]
movsd xmm0, qword [esi - 0x10]
movsd xmm1, qword [esi - 8]
movsd qword [esp + 0x520], xmm1
movsd qword [esp + 0x518], xmm0
push 0x1d
pop ecx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax - 0x14], edx
movsd xmm0, qword [esp + 0x518]
movsd xmm1, qword [esp + 0x520]
movsd qword [eax - 0x10], xmm0
movsd qword [eax - 8], xmm1
push 0xe0
push ebx
lea esi, [esp + 0x110]
push esi
call fcn.004ba8e0
add esp, 0xc
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x730]
mov edx, esi
push eax
call fcn.00439fac
pop eax
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x28]
call fcn.004a8f7f
jmp 0x437285
mov eax, dword [esp + 0x250]
mov ebx, dword [esp + 0x254]
mov edx, dword [esp + 0x258]
mov dword [esp + 0x2c], eax
push 0x18
pop ecx
lea eax, [esp + 0x270]
lea esi, [esp + 0x3a0]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, ebx
mov dword [esp + 0x1c], edx
mov ebx, dword [esp + 0x2c]
mov dword [eax + 0x64], edi
mov dword [eax + 0x60], ebx
mov dword [eax + 0x68], edx
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x43785e
xor esi, esi
mov ecx, dword [esp + 0x274]
dec esi
add eax, dword [esp + 0x270]
adc ecx, 0
cmovb eax, esi
cmovb ecx, esi
cmp eax, ebx
sbb ecx, edi
jae 0x43785e
lea ecx, [esp + 0x270]
jmp 0x437627
push 0x1a
pop ecx
lea eax, [esp + 0x5b0]
lea esi, [esp + 0x270]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0x1c]
mov dword [eax + 0x68], ebx
jmp 0x436843
mov eax, ebx
mov dword [esp + 0x74], ebx
and eax, 0xffffff00
jmp 0x437638
ud2
mov ecx, edi
push 0x4e864c
call fcn.004c87e0
jmp 0x4378b3
push 0x17
pop edx
mov ecx, 0x4e797a
push 0x4e7994
call fcn.004c8b50
pop eax
ud2