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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x620
mov esi, dword [edx + 0x4c]
call 0x454b40
pop eax
mov dword [esp + 0x38], eax
cmp esi, 1
mov dword [esp + 0x2c0], esi
jne 0x457b95
mov ah, byte [edx + 0x34]
mov al, byte [edx + 0x3c]
cmp ah, 3
mov byte [esp + 4], ah
je 0x454b69
cmp ah, 2
jne 0x454b6b
jmp 0x454b8b
mov esi, dword [edx + 0x28]
mov dword [esp + 0xb0], esi
lock inc dword [esi]
jle 0x457c01
mov esi, dword [edx + 0x2c]
mov dword [esp + 0x12c], esi
mov esi, dword [edx + 0x30]
mov dword [esp + 0x50], ecx
xor ecx, ecx
test al, al
mov dword [esp + 0x1d4], esi
setne cl
cmp al, 2
push 2
pop ebx
mov al, byte [edx + 0x3d]
cmove ecx, ebx
mov ah, byte [edx + 0x41]
mov dword [esp + 0x1d0], ecx
xor ecx, ecx
test al, al
setne cl
cmp al, 2
mov al, byte [edx + 0x3e]
cmove ecx, ebx
mov dword [esp + 0x128], ecx
xor ecx, ecx
test al, al
setne cl
cmp al, 2
mov al, byte [edx + 0x3f]
cmove ecx, ebx
mov dword [esp + 0x124], ecx
xor ecx, ecx
test al, al
setne cl
cmp al, 2
mov al, byte [edx + 0x40]
cmove ecx, ebx
mov dword [esp + 0x1cc], ecx
xor ecx, ecx
test al, al
setne cl
cmp al, 2
cmove ecx, ebx
mov dword [esp + 0x1c8], ecx
xor ecx, ecx
test ah, ah
setne cl
cmp ah, 2
cmove ecx, ebx
cmp dword [edx + 0x4c], 0
mov dword [esp + 0x1c4], ecx
je 0x457bb9
mov al, byte [edx + 0x42]
mov byte [esp + 0x1c0], al
mov al, byte [edx + 0x38]
mov byte [esp + 8], al
mov al, byte [edx + 0x39]
mov byte [esp + 0x198], al
mov al, byte [edx + 0x54]
mov byte [esp + 0x23], al
mov eax, dword [edx + 0x48]
mov esi, dword [eax + 8]
mov edi, dword [eax + 4]
mov al, byte [edx + 0x55]
mov byte [esp + 0x3f], al
mov al, byte [edx + 0x56]
mov ecx, esi
mov byte [esp + 0x1b0], al
mov al, byte [edx + 0x57]
mov byte [esp + 0x1b8], al
mov al, byte [edx + 0x58]
mov byte [esp + 0x1b4], al
mov al, byte [edx + 0x59]
mov byte [esp + 0x1bc], al
mov al, byte [edx + 0x5a]
mov byte [esp + 0x1a8], al
mov eax, dword [edx + 8]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x40], eax
mov eax, dword [edx]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x130], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x134], eax
mov eax, dword [edx + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x24]
mov dword [esp + 0xb4], eax
mov eax, dword [edx + 0x50]
mov dword [esp + 0x1a0], eax
mov al, byte [edx + 0x5b]
mov byte [esp + 0x1a4], al
mov al, byte [edx + 0x5d]
mov byte [esp + 0x19c], al
call fcn.00460b74
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1d8], edx
add eax, 8
push esi
push edi
mov dword [esp + 0x1b4], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov al, 3
mov ecx, 0x2020202
and dword [esp + 0x1fc], 0
and dword [esp + 0x24c], 0
mov word [esp + 0x245], 0x202
mov esi, dword [esp + 0xb0]
mov edx, dword [esp + 0x12c]
mov edi, dword [esp + 0x1d4]
mov dword [esp + 0x241], ecx
mov byte [esp + 0x240], 1
mov byte [esp + 0x247], 0xa
mov dword [esp + 0x204], ebx
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x214], ebx
mov dword [esp + 0x21c], ebx
mov byte [esp + 0x230], al
mov byte [esp + 0x234], 0
mov dword [esp + 0x23a], ecx
mov dword [esp + 0x236], ecx
mov cl, byte [esp + 4]
mov byte [esp + 0x23e], al
mov dword [esp + 0x248], 0xfa
mov dword [esp + 0x330], esi
mov dword [esp + 0x334], edx
mov dword [esp + 0x338], edi
cmp cl, al
mov byte [esp + 0x33c], cl
jne 0x454deb
lea eax, [esp + 0x330]
push eax
call fcn.0045be86
pop eax
mov cl, 3
cmp dword [esp + 0x10], 2
jne 0x454dfd
mov eax, dword [esp + 0x208]
mov dword [esp + 0x24], eax
cmp dword [esp + 0xc], 2
jne 0x454e0f
mov eax, dword [esp + 0x210]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x18], 0
jne 0x454e24
mov eax, dword [esp + 0x200]
mov dword [esp + 0x130], eax
cmp dword [esp + 0x14], 2
jne 0x454e39
mov eax, dword [esp + 0x218]
mov dword [esp + 0x134], eax
cmp dword [esp + 0x1c], 2
mov byte [esp + 4], cl
jne 0x454e52
mov eax, dword [esp + 0x220]
mov dword [esp + 0xb4], eax
lea ecx, [esp + 0x241]
cmp byte [esp + 8], 0
movzx eax, byte [esp + 0x198]
lea esi, [esp + 0x224]
movzx ebx, byte [ecx - 0xc]
cmovne ebx, eax
push esi
call fcn.0045be86
pop eax
mov eax, dword [esp + 0x18]
cmp byte [esp + 0x1a4], 0
mov ecx, 0
mov dword [esi - 0x28], eax
mov eax, dword [esp + 0x130]
mov dword [esi - 0x24], eax
mov eax, dword [esp + 0x10]
mov dword [esi - 0x20], eax
mov eax, dword [esp + 0x24]
mov dword [esi - 0x1c], eax
mov eax, dword [esp + 0xc]
mov dword [esi - 0x18], eax
mov eax, dword [esp + 0x40]
mov dword [esi - 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esi - 0x10], eax
mov eax, dword [esp + 0x134]
mov dword [esi - 0xc], eax
mov eax, dword [esp + 0x1c]
mov dword [esi - 8], eax
mov eax, dword [esp + 0xb4]
mov dword [esi - 4], eax
mov eax, dword [esp + 0xb0]
mov dword [esi], eax
mov eax, dword [esp + 0x12c]
mov dword [esi + 4], eax
mov al, byte [esp + 4]
mov dword [esi + 8], edi
mov byte [esi + 0xc], al
mov al, byte [esp + 8]
mov byte [esi + 0x10], al
mov eax, dword [esp + 0x1d0]
mov byte [esi + 0x11], bl
mov word [esi + 0x12], 0x101
mov byte [esi + 0x14], al
mov eax, dword [esp + 0x128]
mov byte [esi + 0x15], al
mov eax, dword [esp + 0x124]
mov byte [esi + 0x16], al
mov eax, dword [esp + 0x1cc]
mov byte [esi + 0x17], al
mov eax, dword [esp + 0x1c8]
mov byte [esi + 0x18], al
mov eax, dword [esp + 0x1c4]
mov byte [esi + 0x19], al
mov al, byte [esp + 0x1c0]
mov byte [esi + 0x1a], al
mov al, byte [esp + 0x1a8]
mov byte [esi + 0x28], al
mov eax, dword [esp + 0x1a0]
mov dword [esi + 0x24], eax
mov al, byte [esp + 0x19c]
mov byte [esi + 0x29], al
setne al
add al, al
mov byte [esi + 0x21], al
xor eax, eax
cmp byte [esp + 0x3f], 1
adc cl, 1
cmp byte [esp + 0x1b0], 1
mov byte [esi + 0x1d], cl
mov ecx, 0
adc cl, 1
cmp byte [esp + 0x1b4], 1
mov byte [esi + 0x1e], cl
mov ecx, 0
adc cl, 1
cmp byte [esp + 0x1b8], 1
mov byte [esi + 0x22], cl
mov ecx, 0
adc cl, 1
cmp byte [esp + 0x1bc], 1
mov byte [esi + 0x1f], cl
mov cl, byte [esp + 0x23]
adc al, 1
mov byte [esi + 0x23], cl
mov byte [esi + 0x20], al
mov eax, dword [esp + 0x1ac]
lea ecx, [esp + 0x2cc]
mov byte [esi + 0x1c], 1
mov dword [ecx - 8], eax
mov eax, dword [esp + 0x1d8]
mov dword [ecx - 4], eax
lea eax, [esp + 0x1e8]
and dword [eax], 0
push 4
pop edx
mov dword [eax + 4], edx
and dword [eax + 8], 0
lea eax, [esp + 0x2c4]
lea edi, [esp + 0xa0]
and dword [esp + 0x1dc], 0
mov dword [esp + 0x1e0], edx
and dword [esp + 0x1e4], 0
lea ebx, [esp + 0x44]
mov dword [edi], eax
mov dword [edi + 4], ecx
and dword [edi + 8], 0
xor esi, esi
mov dword [edi + 0xc], 1
inc esi
mov ecx, edi
call fcn.0046d6d1
test edx, edx
je 0x4564e7
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x248]
and dword [esp + 0x108], 0
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], esi
and dword [esp + 0x114], 0
mov cl, byte [esp + 0x24d]
mov dword [esp + 0x118], eax
mov ah, byte [esp + 0x24e]
mov al, byte [esp + 0x24c]
mov byte [esp + 0x11d], cl
mov byte [esp + 0x11e], al
mov byte [esp + 0x11f], ah
mov byte [esp + 0x11c], al
and dword [esp + 0xb8], 0
and dword [esp + 0xbc], 0
push 4
pop ecx
mov dword [esp + 0xc0], ecx
and dword [esp + 0xc4], 0
and dword [esp + 0xc8], 0
and dword [esp + 0xcc], 0
mov dword [esp + 0xd0], ecx
and dword [esp + 0xd4], 0
and dword [esp + 0xd8], 0
and dword [esp + 0xdc], 0
mov dword [esp + 0xe0], ecx
and dword [esp + 0xe4], 0
and dword [esp + 0xe8], 0
and dword [esp + 0xec], 0
mov dword [esp + 0xf0], ecx
and dword [esp + 0xf4], 0
and dword [esp + 0xf8], 0
and dword [esp + 0xfc], 0
mov dword [esp + 0x100], esi
and dword [esp + 0x104], 0
lea ecx, [esp + 0xb8]
mov edi, dword [edx]
mov edx, dword [edx + 4]
and dword [esp + 0x108], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], esi
mov byte [esp + 0x11c], al
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edx
mov edx, 0x50fd74
call fcn.0049c291
mov esi, edx
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
and dword [eax + 8], 0
call fcn.0049be2e
inc dword [esi]
lea ecx, [esp + 0xc8]
mov edx, 0x50fd84
call fcn.0049c291
mov esi, edx
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
and dword [eax + 8], 0
call fcn.0049be52
inc dword [esi]
lea ecx, [esp + 0xd8]
mov edx, 0x50fd94
call fcn.0049c291
mov esi, edx
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
and dword [eax + 8], 0
call fcn.0049bd72
inc dword [esi]
lea edx, [esp + 0x108]
lea ecx, [esp + 0x33c]
mov eax, dword [edx + 8]
movsd xmm0, qword [edx]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
movsd xmm0, qword [edx]
movsd xmm1, qword [esp + 0x340]
mov dword [esp + 0x338], eax
lea eax, [esp + 0x60]
movsd qword [esp + 0x330], xmm0
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [esp + 0x338]
movsd qword [eax], xmm0
movsd qword [eax + 8], xmm1
and dword [esp + 0x54], 0
push 4
pop eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x58], eax
and dword [esp + 0x5c], 0
mov dword [esp + 8], ecx
lea esi, [esp + 0x160]
mov ecx, ebx
call fcn.0049c2a9
mov eax, dword [esp + 8]
cmp dword [esp + 0x108], eax
je 0x455955
mov ecx, ebx
call fcn.0049c3ee
lea ecx, [eax - 0x28]
cmp ecx, 3
jbe 0x4552ca
cmp eax, 0x3f
je 0x455302
cmp eax, 0x5b
je 0x455464
cmp eax, 0x7b
je 0x45534a
cmp eax, 0x7c
jne 0x45556b
push 9
pop ecx
lea edi, [esp + 0x160]
lea esi, [esp + 0x54]
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x160]
lea ecx, [esp + 0x330]
push esi
call fcn.0049d9d9
jmp 0x4553d5
mov eax, dword [ecx*4 + 0x457c1c]
add eax, dword [esp + 0x38]
jmp eax
push 9
pop ecx
lea edi, [esp + 0x160]
lea esi, [esp + 0x54]
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x160]
mov dword [esp + 0x188], 3
jmp 0x455394
push 9
pop ecx
lea edi, [esp + 0x160]
lea esi, [esp + 0x54]
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x160]
lea ecx, [esp + 0x330]
push esi
call fcn.0049e218
jmp 0x4553d5
lea eax, [esp + 0x188]
lea ecx, [esp + 0x330]
mov edx, ebx
push eax
push esi
call fcn.0049dfdc
pop eax
pop ecx
jmp 0x4553d6
pop eax
mov eax, dword [esp + 0x334]
mov edi, dword [esp + 0x330]
mov ebx, dword [esp + 0x338]
mov ecx, dword [esp + 0x33c]
mov edx, dword [esp + 0x340]
mov dword [esp + 4], eax
lea eax, [esp + 0x348]
cmp edi, 0x22
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esp + 0x344]
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x30], xmm1
jne 0x455b06
mov edi, dword [esp + 4]
movsd xmm0, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x30]
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x60]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
lea ebx, [esp + 0x44]
movsd qword [ecx + 0x10], xmm1
movsd qword [ecx + 8], xmm0
jmp 0x455258
lea ecx, [esp + 0x330]
mov edx, ebx
call fcn.0049db6f
mov eax, dword [esp + 0x334]
mov ebx, dword [esp + 0x330]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x338]
cmp ebx, 0x110009
mov dword [esp + 4], eax
mov eax, dword [esp + 0x33c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x344]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x348]
mov dword [esp + 0x1c], eax
push 9
pop eax
mov ecx, eax
mov edx, esi
mov edi, esi
lea esi, [esp + 0x34c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x24], ecx
je 0x455a6f
push 0xc
pop ecx
lea edi, [esp + 0x2d8]
lea esi, [esp + 0x374]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edi, [esp + 0x78]
lea esi, [esp + 0x160]
rep movsd dword es:[edi], dword [esi]
push 0x74
pop ecx
push 4
pop edx
call fcn.004954d5
mov ecx, dword [esp + 0x18]
mov dword [eax], ebx
lea edi, [eax + 0x1c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 4]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x18], ecx
push 9
pop ecx
lea esi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x44]
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x40], ecx
push 0xc
pop ecx
lea esi, [esp + 0x2d8]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x54]
push 7
pop edx
jmp 0x45590b
mov ecx, ebx
call fcn.0049c3ee
cmp eax, 0x24
je 0x455709
mov esi, eax
cmp eax, 0x2e
je 0x45561c
cmp esi, 0x5c
je 0x45568d
cmp esi, 0x5e
jne 0x45578d
lea ecx, [esp + 0x344]
mov edx, ebx
call fcn.0049c6e6
mov ecx, ebx
call fcn.0049c78b
mov dword [esp + 0x340], 0x80000003
mov byte [esp + 0x35c], 0
mov edx, 0x80000003
mov eax, dword [esp + 0x334]
mov ebx, dword [esp + 0x344]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x338]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x33c]
mov dword [esp + 0xc], eax
push 9
pop ecx
lea edi, [esp + 0x280]
lea esi, [esp + 0x348]
lea eax, [edx + 0x7ffffffe]
rep movsd dword es:[edi], dword [esi]
cmp eax, 4
push 4
pop esi
cmovae eax, esi
mov eax, dword [eax*4 + 0x457c2c]
add eax, dword [esp + 0x38]
jmp eax
lea ecx, [esp + 0x344]
mov edx, ebx
call fcn.0049c6e6
mov ecx, ebx
call fcn.0049c78b
mov eax, dword [esp + 0x334]
mov ebx, dword [esp + 0x344]
mov edx, 0x80000004
mov dword [esp + 4], eax
mov eax, dword [esp + 0x338]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x33c]
mov dword [esp + 0xc], eax
push 9
pop ecx
lea edi, [esp + 0x280]
lea esi, [esp + 0x348]
lea eax, [edx + 0x7ffffffe]
rep movsd dword es:[edi], dword [esi]
cmp eax, 4
push 4
pop esi
cmovae eax, esi
mov eax, dword [eax*4 + 0x457c2c]
add eax, dword [esp + 0x38]
jmp eax
lea ecx, [esp + 0x330]
mov edx, ebx
call fcn.0049c85d
mov eax, dword [esp + 0x330]
mov edx, dword [esp + 0x340]
cmp eax, 0x22
jne 0x455aa0
mov eax, dword [esp + 0x334]
mov ebx, dword [esp + 0x344]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x338]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x33c]
mov dword [esp + 0xc], eax
push 9
pop ecx
lea edi, [esp + 0x280]
lea esi, [esp + 0x348]
lea eax, [edx + 0x7ffffffe]
rep movsd dword es:[edi], dword [esi]
cmp eax, 4
push 4
pop esi
cmovae eax, esi
mov eax, dword [eax*4 + 0x457c2c]
add eax, dword [esp + 0x38]
jmp eax
lea ecx, [esp + 0x344]
mov edx, ebx
call fcn.0049c6e6
mov ecx, ebx
call fcn.0049c78b
mov dword [esp + 0x340], 0x80000003
mov byte [esp + 0x35c], 1
mov edx, 0x80000003
mov eax, dword [esp + 0x334]
mov ebx, dword [esp + 0x344]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x338]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x33c]
mov dword [esp + 0xc], eax
push 9
pop ecx
lea edi, [esp + 0x280]
lea esi, [esp + 0x348]
lea eax, [edx + 0x7ffffffe]
rep movsd dword es:[edi], dword [esi]
cmp eax, 4
push 4
pop esi
cmovae eax, esi
mov eax, dword [eax*4 + 0x457c2c]
add eax, dword [esp + 0x38]
jmp eax
lea ecx, [esp + 0x348]
mov edx, ebx
call fcn.0049c6e6
mov ecx, ebx
call fcn.0049c78b
mov dword [esp + 0x340], 0x80000002
mov dword [esp + 0x344], esi
mov byte [esp + 0x360], 0
mov edx, 0x80000002
mov eax, dword [esp + 0x334]
mov ebx, dword [esp + 0x344]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x338]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x33c]
mov dword [esp + 0xc], eax
push 9
pop ecx
lea edi, [esp + 0x280]
lea esi, [esp + 0x348]
lea eax, [edx + 0x7ffffffe]
rep movsd dword es:[edi], dword [esi]
cmp eax, 4
push 4
pop esi
cmovae eax, esi
mov eax, dword [eax*4 + 0x457c2c]
add eax, dword [esp + 0x38]
jmp eax
push eax
call fcn.0049b318
pop eax
lea ebx, [esp + 0x44]
jmp 0x455251
push 9
pop ecx
lea edi, [esp + 0x160]
lea esi, [esp + 0x54]
lea eax, [esp + 0x160]
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x330]
mov ecx, esi
push eax
call fcn.0049c460
pop eax
mov ecx, dword [esp + 0x330]
mov eax, dword [esp + 0x334]
mov edi, dword [esp + 0x338]
cmp ecx, 0x22
mov dword [esp + 4], eax
mov dword [esp + 0x10], edi
jne 0x456e9d
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], edi
mov ecx, esi
mov edx, ebx
push eax
call fcn.0049e80d
pop eax
mov eax, dword [esp + 0x330]
cmp eax, 0x22
jne 0x456f5e
lea ecx, [esp + 0xb8]
mov edx, 0x510060
call fcn.0049c291
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov esi, dword [eax + 8]
and dword [eax], 0
mov dword [eax + 4], 4
and dword [eax + 8], 0
inc dword [edx]
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], esi
lea edi, [esp + 0xa0]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, esi
call fcn.0049be24
mov ecx, dword [esp + 0xc]
mov edx, esi
call fcn.0049c196
lea ecx, [esp + 0xb8]
call fcn.004658b8
mov esi, dword [esp + 0x1f0]
cmp esi, dword [esp + 0x1e8]
jne 0x455a49
lea ecx, [esp + 0x1e8]
call fcn.0049b349
mov eax, dword [esp + 0x1ec]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x10]
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edx
inc esi
mov dword [esp + 0x1f0], esi
xor esi, esi
inc esi
jmp 0x455039
mov ecx, eax
lea edi, [esp + 0x138]
mov esi, edx
lea ebx, [esp + 0x44]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x54]
call fcn.0049b254
cmp dword [esp + 0x18], 0x22
lea edi, [esp + 0xa0]
je 0x455a07
jmp 0x455b6a
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x334]
mov dword [esp + 0x14], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x338]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x33c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x344]
mov dword [esp + 0x1c], eax
push 9
pop eax
lea edx, [esp + 0x280]
mov ecx, eax
lea esi, [esp + 0x348]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x138]
mov esi, edx
mov ecx, dword [esp + 0x36c]
mov dword [esp + 0x24], ecx
mov ecx, eax
jmp 0x455a7e
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x33c]
mov dword [esp + 0x14], edx
lea edx, [esp + 0x148]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], edi
movsd xmm0, qword [ecx + 0x1c]
movsd xmm1, qword [ecx + 0x24]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x36c]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
movsd xmm0, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x30]
mov dword [edx + 0x10], eax
mov dword [esp + 0x24], ecx
movsd qword [esp + 0x138], xmm0
movsd qword [esp + 0x140], xmm1
push 9
pop eax
lea edx, [esp + 0x25c]
lea esi, [esp + 0x138]
mov ecx, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x308]
mov ecx, eax
mov esi, edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xb8]
call fcn.004658b8
lea ecx, [esp + 0x1dc]
call fcn.004585ed
lea ecx, [esp + 0x1e8]
call fcn.0049b254
mov edx, dword [esp + 0x1f8]
mov eax, dword [esp + 0x1d8]
xor ebx, ebx
mov dword [esp + 0x330], edx
mov dword [esp + 0x334], eax
push 9
pop ecx
lea edi, [esp + 0x160]
lea esi, [esp + 0x308]
rep movsd dword es:[edi], dword [esi]
lock dec dword [edx]
jne 0x455bf4
lea ecx, [esp + 0x330]
call fcn.00463f8c
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x338]
mov edx, dword [esp + 0x18]
mov dword [ecx - 8], ebx
mov dword [ecx - 4], eax
mov eax, dword [esp + 4]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x14], eax
lea eax, [esp + 0x350]
push 9
pop ecx
lea esi, [esp + 0x160]
mov edi, eax
test ebx, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x24]
lea ebx, [edi + 4]
mov dword [eax + 0x24], ecx
je 0x455c71
cmp edx, 0x27
jne 0x455f67
mov eax, dword [esp + 4]
mov dword [edi + 8], eax
mov dword [edi + 4], 0x80000000
jmp 0x457b0d
and dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 1
and dword [esp + 0xa8], 0
cmp edx, 0x22
jne 0x455fd1
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
lea ecx, [esp + 0x5c]
lea eax, [esp + 0x360]
lea edx, [esp + 0x348]
mov dword [ecx - 8], esi
mov dword [ecx - 4], edi
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
lea ecx, [esp + 0x2d8]
lea edx, [esp + 0x54]
call fcn.004a984f
mov ecx, esi
mov edx, edi
call fcn.004a92c9
test al, al
je 0x4562c4
lea ecx, [esp + 0x28]
push 0x7e
pop edx
push 0x4f
call fcn.0049c23c
pop eax
mov dword [esp + 0xb8], 0x510edc
mov dword [esp + 0xbc], 1
and dword [esp + 0xc8], 0
mov dword [esp + 0xc0], 4
and dword [esp + 0xc4], 0
lea esi, [esp + 0xb8]
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
push esi
call fcn.004144f0
pop ecx
mov edi, dword [esp + 0x50]
test al, al
jne 0x457ad3
mov dword [esp + 0xb8], 0x510f5c
mov dword [esp + 0xbc], 2
and dword [esp + 0xc8], 0
lea eax, [esp + 0x28]
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
mov dword [esp + 0x78], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x7c], fcn.00450172
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], 1
push esi
call fcn.004144f0
pop ecx
test al, al
jne 0x457ad3
mov dword [esp + 8], ebx
lea ebx, [esp + 0x308]
lea edx, [esp + 0x2d8]
mov ecx, ebx
call fcn.004a92e2
xor eax, eax
mov dword [esp + 0xb8], 0x514a78
mov dword [esp + 0x78], ebx
lea ebx, [esp + 0x78]
mov dword [esp + 0x7c], fcn.00450172
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
inc eax
mov dword [esp + 0xbc], eax
and dword [esp + 0xc8], 0
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], eax
push esi
call fcn.004144f0
pop ecx
test al, al
jne 0x457abc
mov dword [esp + 0xb8], 0x510f5c
mov dword [esp + 0xbc], 2
and dword [esp + 0xc8], 0
lea eax, [esp + 0x28]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], 1
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], fcn.00450172
push esi
call fcn.004144f0
pop ecx
test al, al
jne 0x457abc
mov eax, dword [esp + 0x2ec]
test eax, eax
je 0x4579a7
mov edx, dword [esp + 0x2e8]
lea ecx, [esp + 0x25c]
imul ebx, eax, 0x18
and dword [ecx], 0
mov dword [ecx + 4], 4
and dword [ecx + 8], 0
lea esi, [edx + 0x10]
mov dword [esp + 4], edx
test ebx, ebx
je 0x4578f9
mov ecx, dword [esp + 4]
mov edx, fcn.00442960
lea edi, [esp + 0x188]
mov eax, dword [ecx + 0x14]
add ecx, 0x18
mov dword [esp + 0x78], 0x510f8c
mov dword [esp + 0x7c], 5
and dword [esp + 0x88], 0
mov dword [esp + 4], ecx
lea ecx, [esp + 0xb8]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], 4
dec eax
mov dword [esp + 0x188], eax
lea eax, [esi - 0xc]
mov dword [esp + 0xb8], eax
lea eax, [esi - 8]
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], edi
lea edi, [esp + 0x138]
mov dword [esp + 0xd4], edx
lea edx, [esp + 0x78]
mov ecx, edi
call fcn.00405066
lea ecx, [esp + 0x25c]
mov edx, edi
call fcn.004a95bf
add esi, 0x18
add ebx, 0xffffffe8
jmp 0x455ea3
lea esi, [esp + 0x2d8]
mov dword [esp + 0xb8], 0x50b8cc
mov edx, 0x50a588
and dword [esi], 0
xor eax, eax
mov ecx, esi
inc eax
mov dword [esi + 4], eax
mov dword [esp + 0xbc], eax
and dword [esp + 0xc8], 0
mov dword [esp + 0xc0], 4
and dword [esi + 8], 0
and dword [esp + 0xc4], 0
lea eax, [esp + 0xb8]
push eax
call fcn.004144f0
pop ecx
movzx ecx, al
call fcn.00457ca3
mov eax, dword [esi + 8]
movsd xmm0, qword [esi]
jmp 0x457b06
mov esi, dword [esp + 0x358]
mov edi, dword [esp + 0x35c]
cmp edx, 0x11
mov dword [esp + 8], ebx
je 0x455ff4
cmp edx, 0xe
je 0x455ff4
xor eax, eax
cmp edx, 0xd
jne 0x455ffb
lea eax, [esp + 0x33c]
lea ebx, [esp + 0x5c]
lea ecx, [esp + 0x360]
lea edx, [esp + 0x338]
mov dword [ebx - 8], esi
mov dword [ebx - 4], edi
mov dword [ebx], edx
mov dword [ebx + 4], ecx
lea ecx, [esp + 0x2d8]
lea edx, [esp + 0x54]
mov dword [ebx + 8], eax
call fcn.004a984f
mov ecx, esi
mov edx, edi
call fcn.004a92c9
test al, al
je 0x4563aa
lea ecx, [esp + 0x28]
push 0x7e
pop edx
push 0x4f
call fcn.0049c23c
pop eax
mov dword [esp + 0xb8], 0x510edc
mov dword [esp + 0xbc], 1
and dword [esp + 0xc8], 0
mov dword [esp + 0xc0], 4
and dword [esp + 0xc4], 0
lea esi, [esp + 0xb8]
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
push esi
call fcn.004144f0
pop ecx
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 8]
test al, al
jne 0x457ad3
mov dword [esp + 0xb8], 0x510f5c
mov dword [esp + 0xbc], 2
and dword [esp + 0xc8], 0
lea eax, [esp + 0x28]
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
mov dword [esp + 0x78], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x7c], fcn.00450172
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], 1
push esi
call fcn.004144f0
pop ecx
test al, al
jne 0x457ad3
lea ebx, [esp + 0x308]
lea edx, [esp + 0x2d8]
mov ecx, ebx
call fcn.004a92e2
xor eax, eax
mov dword [esp + 0xb8], 0x514a78
mov dword [esp + 0x78], ebx
lea ebx, [esp + 0x78]
mov dword [esp + 0x7c], fcn.00450172
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
inc eax
mov dword [esp + 0xbc], eax
and dword [esp + 0xc8], 0
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], eax
push esi
call fcn.004144f0
pop ecx
test al, al
jne 0x457abc
mov dword [esp + 0xb8], 0x510f5c
mov dword [esp + 0xbc], 2
and dword [esp + 0xc8], 0
lea eax, [esp + 0x28]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], 1
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], fcn.00450172
push esi
call fcn.004144f0
pop ecx
test al, al
jne 0x457abc
mov eax, dword [esp + 0x2ec]
test eax, eax
je 0x457a66
mov edx, dword [esp + 0x2e8]
lea ecx, [esp + 0x25c]
imul ebx, eax, 0x18
and dword [ecx], 0
mov dword [ecx + 4], 4
and dword [ecx + 8], 0
lea esi, [edx + 0x10]
mov dword [esp + 4], edx
test ebx, ebx
je 0x4579bc
mov ecx, dword [esp + 4]
mov edx, fcn.00442960
lea edi, [esp + 0x188]
mov eax, dword [ecx + 0x14]
add ecx, 0x18
mov dword [esp + 0x78], 0x510f8c
mov dword [esp + 0x7c], 5
and dword [esp + 0x88], 0
mov dword [esp + 4], ecx
lea ecx, [esp + 0xb8]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], 4
dec eax
mov dword [esp + 0x188], eax
lea eax, [esi - 0xc]
mov dword [esp + 0xb8], eax
lea eax, [esi - 8]
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], edi
lea edi, [esp + 0x138]
mov dword [esp + 0xd4], edx
lea edx, [esp + 0x78]
mov ecx, edi
call fcn.00405066
lea ecx, [esp + 0x25c]
mov edx, edi
call fcn.004a95bf
add esi, 0x18
add ebx, 0xffffffe8
jmp 0x456200
mov dword [esp + 0xb8], str.regex_parse_error:_n
mov dword [esp + 0xbc], 1
and dword [esp + 0xc8], 0
mov dword [esp + 0xc0], 4
and dword [esp + 0xc4], 0
lea eax, [esp + 0xb8]
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
push eax
call fcn.004144f0
pop ecx
mov edi, dword [esp + 0x50]
test al, al
jne 0x457ae0
lea esi, [esp + 0xb8]
lea edx, [esp + 0x54]
mov dword [esp + 8], ebx
mov ecx, esi
call fcn.004a984f
lea ebx, [esp + 0x78]
mov edx, esi
mov ecx, ebx
call fcn.004a92e2
mov ecx, esi
call fcn.004a9526
mov dword [esp + 0x138], ebx
xor ebx, ebx
mov dword [esi], 0x514a78
lea eax, [esp + 0x138]
mov dword [esp + 0x13c], fcn.00450172
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
inc ebx
mov dword [esi + 4], ebx
and dword [esi + 0x10], 0
mov dword [esi + 8], eax
mov dword [esi + 0xc], ebx
push esi
call fcn.004144f0
pop ecx
test al, al
jne 0x4564d1
lea eax, [esp + 0x5c]
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], 0x4970bd
jmp 0x456487
mov dword [esp + 0xb8], str.regex_parse_error:_n
mov dword [esp + 0xbc], 1
and dword [esp + 0xc8], 0
mov dword [esp + 0xc0], 4
and dword [esp + 0xc4], 0
lea eax, [esp + 0xb8]
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
push eax
call fcn.004144f0
pop ecx
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 8]
test al, al
jne 0x457ae0
lea esi, [esp + 0xb8]
lea edx, [esp + 0x54]
mov ecx, esi
call fcn.004a984f
lea ebx, [esp + 0x78]
mov edx, esi
mov ecx, ebx
call fcn.004a92e2
mov ecx, esi
call fcn.004a9526
mov dword [esp + 0x138], ebx
xor ebx, ebx
mov dword [esi], 0x514a78
lea eax, [esp + 0x138]
mov dword [esp + 0x13c], fcn.00450172
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
inc ebx
mov dword [esi + 4], ebx
and dword [esi + 0x10], 0
mov dword [esi + 8], eax
mov dword [esi + 0xc], ebx
push esi
call fcn.004144f0
pop ecx
test al, al
jne 0x4564d1
lea eax, [esp + 0x5c]
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], 0x4970e7
mov dword [esp + 0xb8], str.error:
mov dword [esp + 0xbc], ebx
and dword [esp + 0xc8], 0
lea eax, [esp + 0x138]
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ebx
push esi
call fcn.004144f0
pop ecx
test al, al
je 0x45701d
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
call fcn.004b2152
mov ebx, dword [esp + 8]
jmp 0x457ae0
mov eax, dword [esp + 0x1ec]
mov ecx, dword [esp + 0x1f0]
lea edx, [esp + 0x2d8]
lea esi, [esp + 0x2c4]
mov dword [edx], esi
lea esi, [esp + 0x2cc]
mov dword [edx + 4], esi
and dword [edx + 8], 0
mov dword [edx + 0xc], 1
lea ecx, [eax + ecx*8]
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
and dword [edx + 0x18], 0
and dword [edx + 0x1c], 0
and dword [edx + 0x20], 0
lea ecx, [esp + 0x2d8]
call fcn.0046d6d1
xor ecx, ecx
test edx, edx
je 0x456573
mov esi, dword [esp + 0x2e8]
cmp esi, dword [esp + 0x2ec]
push 4
pop edi
je 0x456576
lea ecx, [esi + 8]
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2d0], edx
mov dword [esp + 0x2e8], ecx
push 8
pop edi
mov ecx, esi
jmp 0x456576
push 4
pop edi
mov dword [esp + edi + 0x2cc], ecx
mov eax, dword [esp + 0x2d0]
test eax, eax
je 0x456ee5
lea edx, [esp + 0x241]
lea esi, [esp + 0x64]
movzx ecx, word [edx + 4]
mov word [esi + 4], cx
mov ecx, dword [edx]
mov dl, byte [esp + 0x247]
mov dword [esi], ecx
and dword [esp + 0x54], 0
mov cl, byte [esp + 0x240]
and dword [esp + 0x58], 0
push 4
pop esi
mov dword [esp + 0x5c], esi
and dword [esp + 0x60], 0
mov byte [esp + 0x6b], cl
mov byte [esp + 0x6a], dl
lea edx, [esp + 0x54]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x2cc]
and dword [esp + 0x78], 0
mov dword [esp + 0x7c], esi
and dword [esp + 0x84], 0
mov dword [esp + 0x88], esi
and dword [esp + 0x80], 0
and dword [esp + 0x8c], 0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x40], edx
mov esi, eax
mov eax, dword [esi]
add eax, 0xfffffff9
cmp eax, 4
ja 0x456769
mov eax, dword [eax*4 + 0x457c40]
add eax, dword [esp + 0x38]
jmp eax
mov eax, dword [esi]
mov dword [esp + 8], esi
add eax, 0xfffffff9
cmp eax, 4
ja 0x456af4
mov eax, dword [eax*4 + 0x457c54]
add eax, dword [esp + 0x38]
jmp eax
mov eax, dword [esp + 8]
lea ecx, [esp + 0x330]
mov edx, ebx
push dword [eax + 4]
push dword [eax]
call fcn.004a2a2a
pop eax
pop ecx
mov eax, dword [esp + 0x330]
cmp eax, 0x80000000
jne 0x456e8b
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
imul ecx, esi, 0x14
dec esi
lea edi, [eax + ecx - 0xc]
cmp esi, 0xffffffff
je 0x456c46
mov eax, dword [edi - 4]
cmp eax, 4
je 0x456c48
mov ebx, dword [edi - 8]
mov dword [esp + 0xa0], eax
lea ecx, [esp + 0xa4]
lea edx, [esp + 0xa0]
mov eax, dword [edi + 8]
mov dword [ecx + 8], eax
movsd xmm0, qword [edi]
movsd qword [ecx], xmm0
lea ecx, [esp + 0x160]
call fcn.0049eda0
cmp dword [esp + 0x160], 4
jne 0x456bb2
lea ecx, [esp + 0x330]
lea edx, [esp + 0x44]
push dword [ebx + 4]
push dword [ebx]
call fcn.004a2a2a
pop eax
pop ecx
mov eax, dword [esp + 0x330]
cmp eax, 0x80000000
jne 0x456cfa
dec esi
add edi, 0xffffffec
jmp 0x456b32
movsd xmm0, qword [esp + 0x160]
movsd xmm1, qword [esp + 0x168]
mov dword [esp + 0x80], esi
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x30], xmm1
cmp dword [esp + 0x28], 3
jne 0x456bf9
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x330]
mov dword [esp + 0x330], 0xf
call fcn.004a4014
lea ecx, [esp + 0x28]
call fcn.0049ed1e
movsd xmm0, qword [esp + 0x160]
movsd xmm1, qword [esp + 0x168]
mov esi, eax
lea eax, [esp + 0x334]
lea ecx, [esp + 0x78]
lea edx, [esp + 0x330]
mov dword [esp + 0x330], ebx
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
call fcn.0049ed42
lea ebx, [esp + 0x44]
jmp 0x456620
xor esi, esi
mov edx, dword [esp + 0x44]
mov dword [esp + 0x80], esi
mov eax, dword [edx]
cmp eax, 0x7fffffff
jae 0x457bc7
lea ecx, [eax + 1]
mov dword [edx], ecx
mov ecx, dword [edx + 0xc]
cmp ecx, 1
mov dword [esp + 0x138], ecx
jne 0x457bd1
lea ecx, [esp + 0x330]
mov dword [edx], eax
call fcn.004a4083
cmp dword [esp + 0x330], 0x10
je 0x457bf7
mov eax, dword [esp + 0x348]
movsd xmm0, qword [esp + 0x340]
movsd xmm2, qword [esp + 0x330]
movsd xmm1, qword [esp + 0x338]
lea ecx, [esp + 0xbc]
lea edx, [esp + 0x160]
mov dword [esp + 0x178], eax
movsd qword [esp + 0x170], xmm0
movsd qword [esp + 0x168], xmm1
movsd qword [esp + 0x160], xmm2
call fcn.004a40db
mov bl, 1
mov dword [esp + 4], 0x80000000
jmp 0x456dc6
mov dword [esp + 4], eax
mov dword [esp + 0x80], esi
push 9
pop ecx
lea edi, [esp + 0xbc]
lea esi, [esp + 0x334]
rep movsd dword es:[edi], dword [esi]
jmp 0x456dc4
xor ebx, ebx
lea ecx, [esp + 0x78]
call fcn.0049ece8
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
test bl, bl
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
je 0x456fc5
mov ecx, dword [esp + 0xd4]
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0xd0]
mov edi, dword [esp + 0xc8]
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x54]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0046596b
mov esi, dword [esp + 0x1e4]
cmp esi, dword [esp + 0x1dc]
jne 0x456e41
lea ecx, [esp + 0x1dc]
call fcn.00495d8f
mov eax, dword [esp + 0x1e0]
mov edx, dword [esp + 0x10]
imul ecx, esi, 0x1c
inc esi
mov dword [eax + ecx], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx + 4], edx
mov edx, dword [esp + 4]
mov dword [eax + ecx + 8], edx
mov dword [eax + ecx + 0xc], edi
mov dword [eax + ecx + 0x10], ebx
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x14]
mov dword [eax + ecx + 0x14], ebx
mov dword [eax + ecx + 0x18], edi
mov dword [esp + 0x1e4], esi
lea ebx, [esp + 0x44]
jmp 0x45652f
mov dword [esp + 4], eax
jmp 0x456d05
mov eax, dword [esp + 0x33c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x344]
mov dword [esp + 0x1c], eax
push 9
pop ecx
lea edi, [esp + 0x138]
lea esi, [esp + 0x348]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x36c]
mov dword [esp + 0x24], eax
jmp 0x455b6a
mov al, byte [esp + 0x236]
mov ah, byte [esp + 0x230]
xor edx, edx
test al, al
setne dl
cmp al, 2
push 2
pop ecx
mov al, byte [esp + 0x237]
cmove edx, ecx
xor ebx, ebx
mov edi, dword [esp + 0x1e0]
mov dword [esp + 0x1cc], edx
test al, al
setne bl
cmp al, 2
mov al, byte [esp + 0x238]
cmove ebx, ecx
mov dword [esp + 0x1c8], ebx
xor ebx, ebx
test al, al
setne bl
cmp al, 2
cmove ebx, ecx
cmp ah, 3
mov dword [esp + 0x1c4], ebx
mov ebx, dword [esp + 0x1e4]
jne 0x457041
mov byte [esp + 0x23], 3
jmp 0x45704b
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x334]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x338]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x33c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x340]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x344]
mov dword [esp + 0x1c], eax
push 9
pop ecx
lea edi, [esp + 0x138]
lea esi, [esp + 0x348]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x28]
mov eax, dword [esp + 0x36c]
mov dword [esp + 0x24], eax
call fcn.0049b016
jmp 0x455b6a
mov eax, dword [esp + 0xc4]
lea ecx, [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0xbc]
movsd xmm0, qword [eax + 0x10]
movsd xmm1, qword [eax + 0x18]
mov eax, dword [eax + 0x20]
movsd qword [esp + 0x308], xmm0
movsd qword [esp + 0x310], xmm1
mov dword [esp + 0x318], eax
call fcn.0046596b
push 0x22
pop eax
mov dword [esp + 0x18], eax
jmp 0x455b9a
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
call fcn.004b2152
lea ecx, [esp + 0x2d8]
call fcn.004a9526
mov ebx, dword [esp + 8]
xor eax, eax
jmp 0x457aee
cmp ah, 2
jne 0x45704d
mov byte [esp + 0x23], 2
jmp 0x457084
mov esi, dword [esp + 0x224]
mov dword [esp + 0x2ac], esi
lock inc dword [esi]
jle 0x457c01
mov esi, dword [esp + 0x228]
mov edx, dword [esp + 0x22c]
mov byte [esp + 0x23], ah
mov dword [esp + 0x2a8], esi
mov dword [esp + 0x2a4], edx
mov al, byte [esp + 0x239]
xor edx, edx
test al, al
setne dl
cmp al, 2
mov al, byte [esp + 0x23a]
cmove edx, ecx
mov dword [esp + 0x1c0], edx
xor edx, edx
test al, al
setne dl
cmp al, 2
mov al, byte [esp + 0x23b]
cmove edx, ecx
mov dword [esp + 0x1bc], edx
xor edx, edx
test al, al
setne dl
cmp al, 2
mov al, byte [esp + 0x23c]
cmove edx, ecx
mov dword [esp + 0x1b8], edx
xor edx, edx
test al, al
setne dl
cmp al, 2
mov al, byte [esp + 0x23d]
cmove edx, ecx
mov dword [esp + 0x1b4], edx
xor edx, edx
test al, al
setne dl
cmp al, 2
mov eax, dword [esp + 0x204]
cmove edx, ecx
xor esi, esi
test ebx, ebx
mov dword [esp + 0x1b0], edx
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x20c]
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0x210]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x1fc]
mov dword [esp + 0x2b4], eax
mov eax, dword [esp + 0x200]
mov dword [esp + 0x2b0], eax
mov eax, dword [esp + 0x214]
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x218]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x21c]
mov dword [esp + 0x2bc], eax
mov eax, dword [esp + 0x220]
mov dword [esp + 0x2b8], eax
push 4
pop eax
mov cl, byte [esp + 0x23e]
mov ch, byte [esp + 0x234]
mov dl, byte [esp + 0x235]
mov dword [esp + 8], eax
mov dword [esp + 0x128], 0
mov byte [esp + 0x3f], cl
mov byte [esp + 0x9f], ch
mov byte [esp + 0x9e], dl
je 0x457200
lea edx, [ebx*4]
push 4
pop ecx
mov dword [esp + 4], edx
call fcn.00405116
test eax, eax
je 0x457c03
xor ecx, ecx
mov dword [eax + ecx*4], edi
inc ecx
add edi, 0x1c
cmp ebx, ecx
jne 0x4571ee
mov dword [esp + 0x128], ebx
lea ecx, [esp + 0x250]
shl ebx, 2
mov dword [esp + 0xb4], eax
and dword [ecx], 0
mov dword [ecx + 4], 4
and dword [ecx + 8], 0
test ebx, ebx
je 0x45727a
mov dword [esp + 4], ebx
mov ebx, dword [eax + esi*4]
call fcn.0049b6a2
mov ecx, dword [ebx + 0x18]
mov edx, eax
mov edi, eax
call fcn.004973b0
cmp esi, dword [esp + 0x250]
jne 0x45725b
lea ecx, [esp + 0x250]
call fcn.00412316
mov eax, dword [esp + 0x254]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
mov ebx, dword [esp + 4]
mov dword [eax + esi*4], edi
mov eax, dword [esp + 0xb4]
inc esi
add ebx, 0xfffffffc
mov dword [esp + 0x258], esi
jmp 0x45721f
mov eax, dword [esp + 0x254]
lea ebx, [esp + 0x330]
lea ecx, [eax + esi*4]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
and dword [ebx], 0
mov ecx, ebx
call fcn.0045a1c6
mov ecx, ebx
neg eax
mov esi, 0
mov dword [esp + 0x10], 0
sbb esi, esi
call fcn.0045a1c6
test eax, eax
je 0x4572ce
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x12c], eax
jmp 0x4572d6
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x334]
cmp dword [esp + 0x330], 0
mov cl, 1
mov ebx, esi
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0
mov dword [esp + 0x134], 0
mov dword [esp + 8], ecx
mov cl, 1
mov dword [esp + 0x38], ecx
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x338]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x33c]
mov dword [esp + 0x1d0], eax
sete al
xor edi, edi
xor edx, edx
xor ecx, ecx
mov ah, cl
mov cl, ah
mov dword [esp + 0x130], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x124], ecx
test al, 1
mov dword [esp + 4], edx
je 0x45737d
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x1d0]
je 0x4574fd
mov ecx, dword [esp + 0x40]
mov eax, ecx
add ecx, 4
mov dword [esp + 0x40], ecx
jmp 0x45738c
mov eax, dword [esp + 0x1d4]
test eax, eax
je 0x4574fd
mov ecx, dword [eax]
test byte [esp + 0x38], 1
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
je 0x4573aa
cmp byte [ecx + 0x30], 0
setne al
mov dword [esp + 0x38], eax
jmp 0x4573b2
mov dword [esp + 0x38], 0
mov edx, dword [esp + 0x10]
mov eax, 0xffffffff
add edx, dword [ecx + 0x2c]
jb 0x4573c2
mov eax, edx
mov edx, dword [ecx + 0x10]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, edx
or eax, edi
sete al
test edi, edi
je 0x4573ef
test edx, edx
mov edx, dword [esp + 4]
je 0x4573f3
mov eax, dword [esp + 0x12c]
cmp eax, dword [ecx + 0x14]
sete al
jmp 0x4573f3
mov edx, dword [esp + 4]
test al, al
jne 0x4573ff
mov dword [esp + 0x24], 0
test byte [esp + 8], 1
mov esi, dword [esp + 0x18]
mov eax, 0
je 0x457416
cmp byte [ecx + 0x31], 0
setne al
test byte [esp + 0x134], 1
mov edi, dword [esp + 0x1c]
mov dword [esp + 8], eax
jne 0x457467
cmp dword [ecx], 0
je 0x45745c
mov eax, dword [ecx + 4]
test edx, edx
sete dl
cmp eax, dword [esp + 0xb0]
setb dh
or dh, dl
mov edx, 1
jne 0x457453
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 4]
mov dword [esp + 0xb0], eax
jmp 0x457467
mov al, 1
xor edx, edx
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x14]
or edi, dword [ecx + 0x18]
and esi, dword [ecx + 0x1c]
and ebx, dword [ecx + 0x20]
or eax, dword [ecx + 0x24]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
or eax, dword [ecx + 0x28]
cmp byte [esp + 0x130], 0
mov dword [esp + 0xc], eax
mov al, 1
jne 0x457355
cmp dword [ecx + 8], 0
mov ah, 1
mov dword [esp + 4], 0
je 0x457341
mov eax, dword [ecx + 0xc]
cmp dword [esp + 0x124], 0
mov ecx, dword [esp + 0x1f4]
mov dword [esp + 0x1c], ebx
mov ebx, edx
sete dh
cmp eax, ecx
seta dl
or dl, dh
mov edx, ebx
mov ebx, dword [esp + 0x1c]
cmovne ecx, eax
mov eax, 1
mov dword [esp + 0x1f4], ecx
mov ecx, dword [esp + 0x124]
cmovne ecx, eax
mov al, 1
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x130]
jmp 0x45733f
mov eax, dword [esp + 0x38]
and al, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 8]
and al, 1
mov dword [esp + 8], eax
push 0x34
pop ecx
push 4
pop edx
call fcn.004050f3
mov ecx, eax
mov eax, dword [esp + 4]
mov dword [ecx], eax
mov eax, dword [esp + 0xb0]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x124]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x1f4]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x12c]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x1c], esi
mov dword [ecx + 0x20], ebx
mov edi, ecx
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x38]
mov byte [ecx + 0x30], al
mov eax, dword [esp + 8]
mov byte [ecx + 0x31], 0
mov byte [ecx + 0x32], al
push 0x5c
pop ecx
push 4
pop edx
call fcn.004050f3
mov esi, eax
xor eax, eax
inc eax
mov edx, esi
mov dword [esi], eax
mov dword [esi + 4], eax
mov eax, dword [esp + 0x2b4]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x2b0]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x1ac]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x1a8]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x1a4]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x1a0]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x19c]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x198]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x2bc]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x2b8]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x2ac]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x2a8]
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x2a4]
mov dword [esi + 0x38], eax
mov al, byte [esp + 0x23]
mov byte [esi + 0x3c], al
mov al, byte [esp + 0x9f]
mov byte [esi + 0x40], al
mov al, byte [esp + 0x9e]
mov byte [esi + 0x41], al
mov eax, dword [esp + 0x1cc]
mov byte [esi + 0x42], al
mov eax, dword [esp + 0x1c8]
mov byte [esi + 0x43], al
mov eax, dword [esp + 0x1c4]
mov byte [esi + 0x44], al
mov eax, dword [esp + 0x1c0]
mov byte [esi + 0x45], al
mov eax, dword [esp + 0x1bc]
mov byte [esi + 0x46], al
mov eax, dword [esp + 0x1b8]
mov byte [esi + 0x47], al
mov eax, dword [esp + 0x1b4]
mov byte [esi + 0x48], al
mov eax, dword [esp + 0x1b0]
mov byte [esi + 0x49], al
mov al, byte [esp + 0x3f]
mov byte [esi + 0x4a], al
mov eax, dword [esp + 0x258]
mov dword [esi + 0x54], eax
movsd xmm0, qword [esp + 0x250]
movsd qword [esi + 0x4c], xmm0
mov dword [esi + 0x58], edi
lea edi, [esp + 0x330]
mov dword [esp + 0x2d8], esi
mov ecx, edi
push dword [esp + 0x128]
push dword [esp + 0xb8]
call fcn.0046d704
pop eax
pop ecx
mov ebx, dword [edi]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp ebx, 2
mov dword [esp + 0x18], ecx
mov dword [esp + 0x40], eax
jne 0x457780
lock inc dword [eax]
jle 0x457c01
mov edi, eax
push 8
pop ecx
push 4
pop edx
call fcn.004050f3
mov ecx, eax
mov dword [eax], edi
mov eax, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [ecx + 4], eax
push 0x40
pop ecx
mov edx, 0x200
call fcn.00405116
test eax, eax
je 0x457c0f
lea ecx, [esp + 0x330]
xor edi, edi
xor ebx, ebx
mov dword [ecx], 8
mov dword [ecx + 4], eax
cmp ebx, 8
mov dword [esp + 0x338], ebx
je 0x4577d8
cmp ebx, dword [esp + 0x330]
jne 0x457763
lea ecx, [esp + 0x330]
call fcn.004640cc
mov eax, dword [esp + 0x334]
and word [eax + edi], 0
and dword [eax + edi + 4], 0
mov dword [eax + edi + 8], 4
and dword [eax + edi + 0xc], 0
add edi, 0x40
inc ebx
jmp 0x457737
lea eax, [esp + 0x350]
mov ecx, dword [eax - 0x14]
mov dword [esp + 4], ecx
mov ecx, dword [eax - 0x10]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax - 0xc]
mov dword [esp + 0xc], ecx
mov ecx, dword [eax - 8]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax - 4]
mov dword [esp + 0x1c], ecx
push 9
pop ecx
lea edi, [esp + 0x308]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x2d8]
push eax
call fcn.0045d9fb
pop eax
mov edi, dword [esp + 0x18]
mov esi, ebx
jmp 0x45788a
mov eax, dword [esp + 0x338]
movsd xmm0, qword [esp + 0x330]
mov dword [esp + 0xc0], eax
movsd qword [esp + 0xb8], xmm0
push 8
pop edx
mov ecx, 0x308
call fcn.004050f3
mov edi, eax
mov dword [eax], 2
add eax, 4
push 0x2ec
lea ecx, [esp + 0x334]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 4]
mov dword [edi + 0x2f0], eax
mov dword [edi + 0x2f4], 0x50c308
and dword [edi + 0x2f8], 0
movsd xmm0, qword [esp + 0xb8]
movsd qword [edi + 0x2fc], xmm0
mov eax, dword [esp + 0xc0]
mov dword [edi + 0x304], eax
push 0x14
pop ecx
push 4
pop edx
call fcn.004050f3
xor ecx, ecx
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x40], eax
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], esi
push 2
pop esi
mov ecx, dword [esp + 0x128]
mov edx, dword [esp + 0xb4]
call fcn.004955f6
lea ecx, [esp + 0x1dc]
call fcn.004585ed
lea ecx, [esp + 0x1e8]
call fcn.0049b254
mov edx, dword [esp + 0x1f8]
mov ecx, dword [esp + 0x1d8]
cmp esi, 2
mov dword [esp + 0x330], edx
mov dword [esp + 0x334], ecx
jne 0x4578ee
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x40]
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
jmp 0x457b44
mov ebx, esi
mov dword [esp + 0x18], edi
jmp 0x455bd0
lea ebx, [esp + 0x25c]
xor esi, esi
lea edi, [esp + 0x78]
mov edx, dword [ebx + 4]
inc esi
mov ecx, edi
push esi
push 0x5167e9
push dword [ebx + 8]
call fcn.0049a8be
add esp, 0xc
mov dword [esp + 0xb8], 0x510f5c
mov dword [esp + 0xbc], 2
and dword [esp + 0xc8], 0
lea eax, [esp + 0x138]
mov dword [esp + 0x138], edi
mov dword [esp + 0x13c], fcn.00450172
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], esi
lea esi, [esp + 0xb8]
push esi
call fcn.004144f0
pop ecx
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov byte [esp + 4], al
call fcn.004b2152
mov ecx, ebx
call fcn.004a9578
cmp byte [esp + 4], 0
mov edi, dword [esp + 0x50]
lea ebx, [esp + 0x78]
jne 0x457abc
lea eax, [esp + 0x5c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 0x4970bd
jmp 0x457a76
lea ebx, [esp + 0x25c]
xor esi, esi
lea edi, [esp + 0x78]
mov edx, dword [ebx + 4]
inc esi
mov ecx, edi
push esi
push 0x5167e9
push dword [ebx + 8]
call fcn.0049a8be
add esp, 0xc
mov dword [esp + 0xb8], 0x510f5c
mov dword [esp + 0xbc], 2
and dword [esp + 0xc8], 0
lea eax, [esp + 0x138]
mov dword [esp + 0x138], edi
mov dword [esp + 0x13c], fcn.00450172
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], esi
lea esi, [esp + 0xb8]
push esi
call fcn.004144f0
pop ecx
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov byte [esp + 4], al
call fcn.004b2152
mov ecx, ebx
call fcn.004a9578
cmp byte [esp + 4], 0
mov edi, dword [esp + 0x50]
lea ebx, [esp + 0x78]
jne 0x457abc
lea eax, [esp + 0x5c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 0x4970e7
xor eax, eax
mov dword [esp + 0xb8], 0x510eec
lea ecx, [esp + 0xa0]
mov edx, 0x50a588
inc eax
mov dword [esp + 0xbc], eax
and dword [esp + 0xc8], 0
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], eax
push esi
call fcn.004144f0
pop ecx
test al, al
je 0x457b75
mov ecx, dword [esp + 0x308]
mov edx, dword [esp + 0x30c]
call fcn.004b2152
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
call fcn.004b2152
lea ecx, [esp + 0x2d8]
call fcn.004a9526
mov al, 1
movzx ecx, al
call fcn.00457ca3
mov eax, dword [esp + 0xa8]
movsd xmm0, qword [esp + 0xa0]
mov dword [ebx + 8], eax
movsd qword [ebx], xmm0
cmp dword [esp + 0x330], 0
je 0x457b35
mov ecx, dword [esp + 0x338]
xor eax, eax
lea edx, [ecx - 0x23]
add ecx, 0xffffffde
cmp edx, 7
cmovb eax, ecx
cmp eax, 1
je 0x457b58
test eax, eax
jne 0x457b41
lea ecx, [esp + 0x338]
call fcn.00457c88
and dword [edi], 0
lea ecx, [esp + 0x1fc]
call fcn.00457c68
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x340]
cmp ecx, 0x80000004
jl 0x457b41
mov edx, dword [esp + 0x344]
call fcn.004b2152
jmp 0x457b41
mov ecx, dword [esp + 0x308]
mov edx, dword [esp + 0x30c]
call fcn.004b2152
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
jmp 0x457025
lea eax, [esp + 0x330]
lea esi, [esp + 0x2c0]
xor ecx, ecx
mov edx, 0x515a4c
and dword [eax], 0
push 0x50a624
push eax
push esi
call fcn.00411c5b
xor ecx, ecx
xor edx, edx
push 0x50a614
call fcn.00442900
mov ecx, 0x511810
call fcn.00444750
and dword [esp + 0x330], 0
lea ecx, [esp + 0x138]
mov edx, 0x515a4c
push 0x511830
lea eax, [esp + 0x334]
push eax
call fcn.0049a868
mov ecx, 0x511820
call fcn.00444f90
ud2
push 4
pop ecx
mov edx, dword [esp + 4]
call fcn.0041ec50
push 0x40
pop ecx
mov edx, 0x200
call fcn.0041ec50
xchg edi, eax
pop es
add byte [eax], al
outsd dx, dword [esi]
or byte [eax], al
add dh, ah
pop es
add byte [eax], al
xor cl, byte [eax]
add byte [eax], al
fmul dword [eax + eax]
add bl, bl
or eax, 0xd580000
add byte [eax], al
mov cs, word [0xd1f0000]
add byte [eax], al
sti
sbb al, byte [eax]
add byte [ebx + ebx + 0x1b350000], ch
add byte [eax], al
jne 0x457c69
add byte [eax], al
and eax, 0x4800001b
sbb al, 0
add byte [esi], dh
pop ds
add byte [eax], al
out dx, eax
push ds
add byte [eax], al
clc
push ds
add byte [eax], al
mov dh, 0x1e
add byte [eax], al