Function at 0x43efb0
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x110
mov eax, dword [0x54c03c]
mov esi, dword [ebp + 8]
xor ebx, ebx
xor eax, ebp
lea edi, [esi + 1]
mov dword [esp + 0x108], eax
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0x24], esi
jmp 0x43f001
inc edi
movzx ecx, byte [edi - 1]
movsx eax, cl
lea edx, [eax - 9]
cmp edx, 5
jb 0x43f000
cmp eax, 0x2a
jg 0x43f020
cmp eax, 0x20
je 0x43f000
test eax, eax
je 0x43f035
jmp 0x43f086
cmp eax, 0x2b
je 0x43f02f
cmp eax, 0x2d
jne 0x43f086
mov ebx, 1
mov cl, byte [edi]
test cl, cl
jne 0x43f089
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x24]
xor ebx, ebx
test ecx, ecx
je 0x43f044
mov dword [ecx], eax
movsd xmm0, qword [esp + 0xf0]
test ebx, ebx
je 0x43f058
xorps xmm0, xmmword [0x4fe290]
movsd qword [esp + 0xd0], xmm0
fld qword [esp + 0xd0]
fstp xword [esp + 0x2c]
mov ecx, dword [esp + 0x108]
xor ecx, ebp
call fcn.004d45c8
fld xword [esp + 0x2c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
dec edi
xor ebx, ebx
xor edx, edx
cmp cl, 0x30
jne 0x43f0a9
movzx ecx, byte [edi + 1]
inc edi
cmp cl, 0x30
je 0x43f090
test cl, cl
jne 0x43f0b3
mov ecx, dword [ebp + 0xc]
mov eax, edi
test ecx, ecx
jne 0x43f042
jmp 0x43f044
mov dword [esp + 0x20], 0
jmp 0x43f0bb
mov dword [esp + 0x20], 1
movsx eax, cl
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0xc], eax
mov ah, cl
add ah, 0xd0
cmp ah, 9
ja 0x43f153
xor esi, esi
xor ebx, ebx
xor edx, edx
nop word [eax + eax]
cmp edx, 8
ja 0x43f100
mov ecx, dword [esp + 0xc]
lea eax, [ebx + ebx*4]
lea ebx, [ecx + eax*2 - 0x30]
jmp 0x43f110
cmp edx, 0x10
ja 0x43f110
mov ecx, dword [esp + 0xc]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*2 - 0x30]
movzx ecx, byte [edi + edx + 1]
inc edx
movsx eax, cl
mov dword [esp + 0xc], eax
mov ah, cl
add ah, 0xd0
cmp ah, 0xa
jb 0x43f0e0
mov eax, edi
lea edi, [edi + edx]
cmp edi, eax
jbe 0x43f163
mov eax, edi
mov dword [esp + 0x10], 0
nop word [eax + eax]
cmp byte [eax - 1], 0x30
jne 0x43f16b
dec eax
inc dword [esp + 0x10]
cmp eax, dword [esp + 0x28]
ja 0x43f140
jmp 0x43f16b
mov eax, edi
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x10], 0
jmp 0x43f16d
mov dword [esp + 0x10], 0
mov eax, edi
cmp cl, 0x2e
mov dword [esp + 0x50], 0
jne 0x43f1b6
lea eax, [edi + 1]
mov dword [esp + 4], esi
mov dword [esp + 0x2c], ebx
movsx ebx, byte [edi + 1]
mov esi, edi
mov edi, edx
mov ecx, eax
sub ecx, dword [esp + 0x28]
mov edx, ecx
mov dword [esp + 0x54], ecx
sub edx, edi
mov dword [esp + 0x1c], edx
mov edx, edi
xor edi, edi
test edx, edx
je 0x43f1e4
xor ecx, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 8], edx
jmp 0x43f271
mov dword [esp + 0x40], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x28]
xor edi, edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x54], edx
mov dword [esp + 8], edx
mov dword [esp + 0x3c], 0
jmp 0x43f38f
cmp bl, 0x30
mov dword [esp + 0x4c], 0
mov dword [esp + 0xc], ebx
jne 0x43f21a
mov ebx, dword [esp + 0x2c]
xor edi, edi
nop dword [eax + eax]
movsx ecx, byte [esi + edi + 2]
inc edi
cmp ecx, 0x30
je 0x43f200
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp + 0xc]
add eax, edi
mov dword [esp + 0x40], eax
jmp 0x43f227
mov ecx, dword [ebp + 0xc]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
xor edi, edi
mov eax, dword [esp + 0xc]
lea eax, [eax - 0x31]
cmp eax, 8
mov eax, dword [esp + 0x28]
ja 0x43f260
mov esi, eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 8], 0
sub esi, eax
lea ecx, [esi + ecx]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x54], ecx
xor ecx, ecx
jmp 0x43f285
mov esi, dword [esp + 4]
mov dword [esp + 8], 0
jmp 0x43f1d7
mov dword [esp + 0x40], eax
lea eax, [ebx - 0x30]
cmp eax, 9
mov eax, dword [esp + 0x28]
ja 0x43f372
mov dword [esp + 0x28], eax
lea eax, [ecx + 1]
add ebx, 0xffffffd0
mov dword [esp + 0x14], edx
je 0x43f321
add edi, eax
mov eax, dword [esp + 8]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], edi
cmp eax, 9
setl dl
test ecx, ecx
jle 0x43f32d
lea ebx, [eax + ecx]
nop word cs:[eax + eax]
nop
lea edi, [eax + 1]
test dl, 1
je 0x43f2e0
mov eax, dword [esp + 0x2c]
add eax, eax
lea eax, [eax + eax*4]
mov dword [esp + 0x2c], eax
jmp 0x43f2f8
mov esi, ecx
mov ecx, dword [esp + 4]
cmp eax, 0x11
lea edx, [ecx + ecx]
lea edx, [edx + edx*4]
cmovl ecx, edx
mov dword [esp + 4], ecx
mov ecx, esi
cmp edi, 9
mov eax, edi
setl dl
dec ecx
jne 0x43f2c0
lea edx, [ebx + 1]
cmp edi, 9
jge 0x43f337
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
xor ecx, ecx
mov dword [esp + 0x2c], eax
jmp 0x43f350
mov edx, dword [esp + 8]
mov dword [esp + 0x18], edi
mov ecx, eax
jmp 0x43f358
lea edx, [eax + 1]
cmp eax, 8
mov ebx, eax
jle 0x43f30b
xor ecx, ecx
cmp ebx, 0x10
jg 0x43f350
mov eax, dword [esp + 4]
mov esi, dword [esp + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*2]
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x40]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
movsx ebx, byte [eax + 1]
inc eax
jmp 0x43f271
mov dword [esp + 0xc], ebx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x3c], edi
mov edi, ecx
mov ecx, dword [ebp + 0xc]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xc]
or eax, 0x20
cmp eax, 0x65
jne 0x43f3d7
mov eax, edi
or eax, dword [esp + 0x20]
or eax, dword [esp + 8]
je case.0x43f649.74
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], edi
movsx ecx, byte [eax + 1]
cmp ecx, 0x2b
je 0x43f3e4
cmp ecx, 0x2d
mov dword [esp + 0x14], 0
jne 0x43f3f5
mov dword [esp + 0x14], 1
jmp 0x43f3ec
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], edi
jmp 0x43f4dd
mov dword [esp + 0x14], 0
movsx edi, byte [eax + 2]
lea ecx, [eax + 2]
jmp 0x43f3fa
mov edi, ecx
lea ecx, [eax + 1]
lea eax, [edi - 0x30]
mov dword [esp + 0x50], 0
mov dword [esp + 0xc], edi
cmp eax, 9
ja 0x43f4c3
cmp edi, 0x30
jne 0x43f42e
nop word [eax + eax]
movsx eax, byte [ecx + 1]
inc ecx
cmp eax, 0x30
je 0x43f420
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0xc]
lea eax, [edi - 0x31]
cmp eax, 8
ja 0x43f4d0
movsx eax, byte [ecx + 1]
mov dword [esp + 4], esi
add edi, 0xffffffd0
mov dword [esp + 0x2c], ebx
mov ebx, edi
lea edi, [ecx + 1]
mov esi, eax
add al, 0xd0
cmp al, 9
ja 0x43f47e
nop word [eax + eax]
cmp ebx, 0xcccccca
jg 0x43f471
mov eax, ebx
lea eax, [ebx + ebx*4]
lea ebx, [esi + eax*2 - 0x30]
movsx eax, byte [edi + 1]
inc edi
mov esi, eax
add al, 0xd0
cmp al, 0xa
jb 0x43f460
mov eax, edi
mov dword [esp + 0xc], esi
mov esi, dword [esp + 4]
sub eax, ecx
mov ecx, ebx
cmp eax, 8
mov eax, 0x4e1f
cmovg ecx, eax
cmp ebx, 0x4e1f
mov ebx, dword [esp + 0x2c]
cmovg ecx, eax
mov eax, ecx
neg eax
cmp dword [esp + 0x14], 0
cmove eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov eax, edi
jmp 0x43f4dd
mov eax, dword [esp + 0x40]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x24], eax
jmp 0x43f4dd
mov eax, dword [esp + 0x40]
mov dword [esp + 0x24], eax
mov eax, ecx
mov ecx, dword [ebp + 0xc]
mov edi, dword [esp + 8]
test edi, edi
je 0x43f573
mov ecx, dword [esp + 0x4c]
movq xmm2, qword [0x4fe240]
movd xmm0, ebx
mov dword [esp + 0x14], edx
mov edx, 0x11
test ecx, ecx
por xmm0, xmm2
cmove ecx, edi
cmp edi, 0x12
subsd xmm0, xmm2
cmovl edx, edi
mov dword [esp + 0x4c], ecx
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xc8], xmm0
mov dword [esp + 0x2c], ebx
cmp edx, 0xa
jl 0x43f596
mulsd xmm0, qword [edx*8 + 0x5034d8]
movd xmm1, esi
por xmm1, xmm2
subsd xmm1, xmm2
addsd xmm0, xmm1
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xc0], xmm0
mov ecx, dword [esp + 0xc0]
mov dword [esp + 4], ecx
mov esi, dword [esp + 0xc4]
jmp 0x43f5a8
mov esi, dword [esp + 0x18]
mov edx, ecx
or esi, dword [esp + 0x20]
je 0x43f62a
mov ebx, dword [esp + 0x38]
mov ecx, edx
test ecx, ecx
jne 0x43f042
jmp 0x43f044
mov ecx, dword [esp + 0xc8]
mov dword [esp + 4], ecx
mov esi, dword [esp + 0xcc]
mov ebx, dword [esp + 0x50]
sub ebx, dword [esp + 0x3c]
cmp dword [esp + 8], 0xf
mov dword [esp + 0x58], ebx
jg 0x43f6bc
fnstcw word [esp + 0x7c]
mov edi, eax
mov eax, dword [esp + 0x7c]
mov ecx, eax
shr eax, 0xb
shr ecx, 9
and eax, 1
and ecx, 2
lea eax, [eax + ecx + 1]
and eax, 3
cmp eax, 1
mov eax, edi
jne 0x43f6bc
test ebx, ebx
je 0x43fa63
mov ecx, dword [ebp + 0xc]
jle 0x43f682
mov ebx, dword [esp + 0x58]
cmp ebx, 0x16
jg 0x43f6a9
mulsd xmm0, qword [ebx*8 + 0x503520]
mov ebx, dword [esp + 0x38]
movsd qword [esp + 0xf0], xmm0
test ecx, ecx
jne 0x43f042
jmp 0x43f044
cmp dword [esp + 0x1c], 0
mov ecx, edx
jne case.0x43f649.74
mov edx, dword [esp + 0xc]
add edx, 0xffffffb7
cmp edx, 0x25
ja case.0x43f649.74
mov edi, eax
jmp dword [edx*4 + 0x503420]
mov ecx, 0x503510
mov eax, edi
movsx edx, byte [ecx]
lea edi, [eax + 1]
test edx, edx
je 0x43f9c0
movsx eax, byte [edi]
inc ecx
mov ebx, eax
lea esi, [eax + 0x20]
add bl, 0xbf
cmp bl, 0x1a
cmovae esi, eax
mov eax, edi
cmp esi, edx
je 0x43f657
jmp 0x43f035
mov ebx, dword [esp + 0x58]
cmp ebx, 0xffffffea
jl 0x43f6bc
shl ebx, 3
mov eax, 0x503520
sub eax, ebx
divsd xmm0, qword [eax]
mov eax, edi
movsd qword [esp + 0xf0], xmm0
jmp 0x43fa63
mov eax, 0x25
sub eax, dword [esp + 8]
cmp ebx, eax
mov eax, edi
jle 0x43f993
mov ecx, dword [esp + 8]
mov dword [esp + 0x40], eax
sub ecx, edx
mov edx, ebx
add ecx, ebx
jle 0x43f736
mov eax, ecx
and eax, 0xf
je 0x43f6f5
mulsd xmm0, qword [eax*8 + 0x503520]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xe8], xmm0
mov esi, dword [esp + 0xec]
mov eax, ecx
and eax, 0xfffffff0
je 0x43f783
cmp eax, 0x135
jl 0x43f790
xor edi, edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0x38]
jmp 0x443006
test ecx, ecx
mov dword [esp + 0x48], 0
jns 0x43fae9
mov ebx, ecx
neg ebx
mov eax, ebx
and eax, 0xf
je 0x43f87f
divsd xmm0, qword [eax*8 + 0x503520]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xb8], xmm0
mov edi, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
jmp 0x43f883
mov dword [esp + 0x48], 0
jmp 0x43fae9
cmp ecx, 0x20
mov dword [esp + 0x18], 0
jb 0x43f7e5
shr ecx, 4
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
test cl, 1
je 0x43f7d7
mulsd xmm0, qword [eax*8 + 0x5035d8]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xe0], xmm0
mov esi, dword [esp + 0xe4]
mov edx, ecx
inc eax
shr edx, 1
cmp ecx, 3
mov ecx, edx
ja 0x43f7b0
jmp 0x43f7e7
xor eax, eax
movsd xmm0, qword [eax*8 + 0x5035d8]
add esi, 0xfcb00000
mov edi, 0
mov dword [esp + 0xf4], esi
mulsd xmm0, qword [esp + 0xf0]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xd8], xmm0
mov eax, dword [esp + 0xdc]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0
mov ecx, eax
and ecx, 0x7ff00000
cmp ecx, 0x7ca00000
ja 0x443006
cmp ecx, 0x7c900001
jb 0x43f8bd
mov dword [esp + 0xf4], 0x7fefffff
mov dword [esp + 0xf0], 0xffffffff
mov dword [esp + 0x48], 0
jmp 0x43fae5
mov edi, dword [esp + 4]
mov eax, ebx
sar eax, 4
je 0x43fae9
cmp ecx, 0xfffffe01
mov dword [esp + 0x18], 0
jge 0x43f8d6
xor edi, edi
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0
jmp 0x4418b2
add eax, 0x3500000
mov dword [esp + 0x48], 0
mov dword [esp + 0xf4], eax
jmp 0x43fae5
cmp ecx, 0xfffffff0
jg 0x43f911
mov ecx, 0x503600
test al, 1
je 0x43f908
mulsd xmm0, qword [ecx]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xb0], xmm0
mov edi, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
shr eax, 1
add ecx, 8
test eax, eax
jne 0x43f8e0
test ebx, 0x100
je 0x43fa9c
mov eax, esi
mov ecx, 0x6b
shr eax, 0x14
and eax, 0x7ff
sub ecx, eax
jle 0x43fa9c
cmp ecx, 0x20
jl 0x43fa77
cmp ecx, 0x36
jg 0x43f89e
cmp ecx, 0x35
mov dword [esp + 0xf0], 0
jl 0x43fa89
mov dword [esp + 0xf4], 0x3700000
jmp 0x43fa9c
inc edi
mov eax, 0x503519
movsx ecx, byte [eax]
test ecx, ecx
je 0x43f9ed
movsx edx, byte [edi]
inc eax
mov ebx, edx
lea esi, [edx + 0x20]
add bl, 0xbf
cmp bl, 0x1a
cmovae esi, edx
inc edi
cmp esi, ecx
je 0x43f970
jmp 0x43f035
mov eax, 0xf
sub eax, dword [esp + 8]
mulsd xmm0, qword [eax*8 + 0x503520]
sub ebx, eax
mov eax, edi
mulsd xmm0, qword [ebx*8 + 0x503520]
movsd qword [esp + 0xf0], xmm0
jmp 0x43fa63
mov ecx, 1
movsx edx, byte [ecx + 0x503512]
test edx, edx
je 0x43fa4b
movsx esi, byte [eax + ecx]
mov ebx, esi
add bl, 0xbf
cmp bl, 0x1a
mov ebx, esi
lea esi, [esi + 0x20]
cmovae esi, ebx
inc ecx
cmp esi, edx
je 0x43f9c5
mov eax, edi
jmp 0x43fa4d
mov dword [esp + 0xf4], 0x7ff80000
mov dword [esp + 0xf0], 0
mov eax, edi
cmp byte [edi], 0x28
jne 0x43fa63
lea ecx, [eax + 2]
movzx eax, byte [ecx - 1]
inc ecx
dec al
cmp al, 0x20
jb 0x43fa0d
mov dl, byte [ecx - 2]
lea eax, [ecx - 2]
cmp dl, 0x30
jne 0x43fa36
mov dl, byte [ecx - 1]
or dl, 0x20
cmp dl, 0x78
jne 0x44349f
mov dl, byte [ecx]
mov eax, ecx
test dl, dl
jne 0x4434a1
mov ebx, dword [esp + 0x38]
xor esi, esi
xor edx, edx
jmp 0x44354e
add eax, ecx
mov dword [esp + 0xf4], 0x7ff00000
mov dword [esp + 0xf0], 0
mov ecx, dword [ebp + 0xc]
mov ebx, dword [esp + 0x38]
test ecx, ecx
jne 0x43f042
jmp 0x43f044
mov eax, 0xffffffff
shl eax, cl
and edi, eax
mov dword [esp + 0xf0], edi
jmp 0x43fa9c
add ecx, 0xffffffe0
mov eax, 0xffffffff
shl eax, cl
and eax, esi
mov dword [esp + 0xf4], eax
movsd xmm0, qword [esp + 0xf0]
mov eax, ebx
mov ebx, dword [esp + 0x38]
xorpd xmm1, xmm1
mov edi, 0
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0
mov dword [esp + 0xc], 0
ucomisd xmm0, xmm1
jne 0x43fad8
jnp 0x442f98
shl eax, 0x17
sar eax, 0x1f
and eax, 0x6a
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 8]
cmp eax, 0x29
jl 0x43fb8c
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x4c], 0x12
mov esi, dword [esp + 0x14]
mov ecx, 0x12
mov ebx, 0x13
lea eax, [eax + 0x12]
cmovl ecx, eax
lea eax, [esi - 1]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
nop
lea edx, [ecx - 1]
cmp ecx, esi
mov edi, edx
cmovg edi, dword [esp + 4]
cmp ecx, eax
mov ecx, dword [esp + 0x28]
cmovg edi, edx
dec ebx
cmp byte [ecx + edi], 0x30
mov ecx, edi
je 0x43fb20
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
add edx, dword [esp + 8]
mov ecx, eax
sub edx, dword [esp + 0x3c]
sub edx, ebx
cmp eax, ebx
cmovg ecx, ebx
cmp ebx, 8
mov dword [esp + 0x50], edx
mov dword [esp + 0xc], ecx
jg 0x43fbc4
mov edi, dword [esp + 0x28]
test ecx, ecx
jle 0x43fb9c
xor esi, esi
xor eax, eax
movsx edx, byte [edi + eax]
lea ecx, [esi + esi*4]
inc eax
lea esi, [edx + ecx*2 - 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, ecx
jl 0x43fb70
mov edx, ecx
cmp edx, ebx
jl 0x43fba4
jmp 0x43fbc0
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x50], edx
mov ebx, eax
mov dword [esp + 0xc], ecx
jmp 0x43fbc4
xor edx, edx
xor esi, esi
cmp edx, ebx
jge 0x43fbc0
mov eax, dword [esp + 0x54]
lea eax, [edi + eax]
mov edi, ebx
sub ebx, edx
nop
lea edx, [esi + esi*4]
movsx esi, byte [eax]
inc eax
dec ebx
lea esi, [esi + edx*2 - 0x30]
jne 0x43fbb0
mov ebx, edi
mov dword [esp + 0x2c], esi
mov edi, ebx
lea eax, [ebx + 8]
mov ecx, 0x38e38e39
xor ebx, ebx
imul ecx
cmp edi, 0xa
mov dword [esp + 0x24], edi
jl 0x43fbf7
mov eax, edx
sar edx, 1
xor ebx, ebx
shr eax, 0x1f
add edx, eax
mov eax, 1
nop dword [eax + eax]
add eax, eax
inc ebx
cmp edx, eax
jg 0x43fbf0
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x43fc43
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x43fc3d
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x43fc43
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
cmp ebx, 7
ja 0x43fc6d
mov eax, dword [ebx*4 + 0x54fd58]
test eax, eax
je 0x441818
mov dword [esp + 4], eax
mov eax, dword [eax]
mov dword [ebx*4 + 0x54fd58], eax
jmp 0x43fc95
mov edi, 1
mov ecx, ebx
shl edi, cl
lea eax, [edi*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.00429c60
add esp, 4
mov ecx, eax
mov dword [ecx + 4], ebx
mov dword [esp + 4], ecx
mov dword [ecx + 8], edi
mov edi, dword [0x54fd78]
mov esi, dword [esp + 0x2c]
cmp edi, 1
ja 0x43fce5
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x43fcdf
mov ecx, 0x54fd7c
mov edi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x43fce5
mov edi, dword [0x54fd78]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, dword [esp + 4]
cmp dword [esp + 0xc], 0xa
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], 1
jl 0x44004d
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], 9
mov dword [esp + 0x2c], 1
lea eax, [eax + 9]
jmp 0x43fd44
mov eax, dword [esp + 0x14]
mov dword [esp + 4], ecx
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x18], edi
inc eax
mov dword [esp + 0x2c], ecx
movsx esi, byte [eax]
mov ebx, dword [esp + 4]
xor ecx, ecx
mov dword [esp + 0x14], eax
add esi, 0xffffffd0
mov edi, esi
sar edi, 0x1f
nop dword [eax]
mov eax, 0xa
mul dword [ebx + ecx*4 + 0x14]
add eax, esi
mov esi, edx
adc esi, edi
mov dword [ebx + ecx*4 + 0x14], eax
inc ecx
mov edi, 0
cmp ecx, dword [esp + 0x2c]
jl 0x43fd60
test esi, esi
je 0x43fdb0
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x2c]
cmp ebx, dword [eax + 8]
jge 0x43fdd0
mov ecx, eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
jmp 0x440033
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
jmp 0x44003b
mov edi, dword [eax + 4]
mov ecx, dword [0x54fd78]
cmp ecx, 1
ja 0x43fe1f
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x43fe19
mov ecx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
mov ecx, 0x54fd7c
add esp, 0x10
jmp 0x43fe1f
mov ecx, dword [0x54fd78]
mov dword [esp + 0x2c], ebx
lea ebx, [edi + 1]
call fcn.00430c50
cmp edi, 6
mov dword [esp + 0x3c], ebx
jg 0x43fe52
mov eax, dword [edi*4 + 0x54fd5c]
test eax, eax
je 0x43ff62
mov ecx, dword [eax]
mov ebx, dword [esp + 0x2c]
mov dword [edi*4 + 0x54fd5c], ecx
jmp 0x43fe7c
mov edi, 1
mov ecx, ebx
shl edi, cl
lea eax, [edi*4 + 0x1b]
mov ebx, dword [esp + 0x2c]
and eax, 0xfffffff8
push eax
call fcn.00429c60
add esp, 4
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [esp + 0x20], eax
mov edi, dword [0x54fd78]
cmp edi, 1
ja 0x43fecc
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x43fec6
mov ecx, 0x54fd7c
mov edi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x43fecc
mov edi, dword [0x54fd78]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 4]
mov dword [ecx + 0x10], 0
mov dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
lea ecx, [edi + 0xc]
mov edx, dword [edi + 0x10]
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call fcn.004d9f90
add esp, 0xc
cmp dword [edi + 4], 8
jl 0x43ff18
push edi
call fcn.00429ca0
add esp, 4
jmp 0x440023
mov ecx, dword [0x54fd78]
cmp ecx, 1
ja 0x43ffb8
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x43ffb2
mov ecx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
mov ecx, 0x54fd7c
add esp, 0x10
jmp 0x43ffb8
mov ecx, dword [esp + 0x3c]
mov edx, dword [0x54c060]
mov edi, 1
mov ebx, 0x54fd88
shl edi, cl
mov dword [esp + 0x20], edx
sub edx, ebx
lea eax, [edi*4 + 0x1b]
sar edx, 3
mov ecx, eax
shr ecx, 3
add edx, ecx
cmp edx, 0x120
ja 0x43fe62
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x2c]
lea eax, [edx + ecx*8]
mov dword [0x54c060], eax
mov eax, edx
jmp 0x43fe72
mov ecx, dword [0x54fd78]
call fcn.00430c50
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edi], ecx
mov dword [eax*4 + 0x54fd58], edi
mov edi, dword [0x54fd78]
cmp edi, 1
ja 0x44001c
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x440016
mov ecx, 0x54fd7c
mov edi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x44001c
mov edi, dword [0x54fd78]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov dword [ecx + ebx*4 + 0x14], esi
inc ebx
mov dword [ecx + 0x10], ebx
inc edi
cmp edi, edx
jne 0x43fd30
lea edi, [eax + edx]
add edi, dword [esp + 0x1c]
jmp 0x44005e
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
lea edi, [eax + edx + 9]
mov edx, 9
add byte [eax], al
mov eax, dword [esp + 8]
sub eax, dword [esp + 0x10]
cmp edx, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
jge 0x44039d
jmp 0x440090
mov ebx, edi
mov edi, dword [esp + 0x20]
jmp 0x4401b4
movsx esi, byte [edi]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x18], edi
mov ebx, ecx
xor ecx, ecx
mov dword [esp + 0xc], edx
add esi, 0xffffffd0
mov dword [esp + 0x2c], eax
mov edi, esi
sar edi, 0x1f
nop
mov eax, 0xa
mul dword [ebx + ecx*4 + 0x14]
add eax, esi
mov esi, edx
adc esi, edi
mov dword [ebx + ecx*4 + 0x14], eax
inc ecx
mov edi, 0
cmp ecx, dword [esp + 0x2c]
jl 0x4400b0
mov edi, dword [esp + 0x2c]
test esi, esi
mov dword [esp + 4], ebx
je 0x440100
mov eax, dword [esp + 4]
cmp edi, dword [eax + 8]
jge 0x440120
mov ebx, edi
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
mov ecx, eax
jmp 0x440387
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
jmp 0x440393
mov ebx, dword [eax + 4]
mov ecx, dword [0x54fd78]
cmp ecx, 1
ja 0x44016f
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x440169
mov ecx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
mov ecx, 0x54fd7c
add esp, 0x10
jmp 0x44016f
mov ecx, dword [0x54fd78]
lea eax, [ebx + 1]
mov dword [esp + 0x10], eax
call fcn.00430c50
cmp ebx, 6
jg 0x44019e
mov eax, dword [ebx*4 + 0x54fd5c]
test eax, eax
je 0x4402b4
mov ecx, dword [eax]
mov dword [ebx*4 + 0x54fd5c], ecx
mov ebx, dword [esp + 0x2c]
jmp 0x4401ca
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x2c]
mov edi, 1
shl edi, cl
lea eax, [edi*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.00429c60
add esp, 4
mov ecx, dword [esp + 0x10]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [esp + 0x14], eax
mov edi, dword [0x54fd78]
cmp edi, 1
ja 0x44021a
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x440214
mov ecx, 0x54fd7c
mov edi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x44021a
mov edi, dword [0x54fd78]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 4]
mov dword [ecx + 0x10], 0
mov dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
lea ecx, [edi + 0xc]
mov edx, dword [edi + 0x10]
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call fcn.004d9f90
add esp, 0xc
cmp dword [edi + 4], 8
jl 0x440266
push edi
call fcn.00429ca0
add esp, 4
jmp 0x44037b
mov ecx, dword [0x54fd78]
cmp ecx, 1
ja 0x440310
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x44030a
mov ecx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
mov ecx, 0x54fd7c
add esp, 0x10
jmp 0x440310
mov ecx, dword [esp + 0x10]
mov edx, dword [0x54c060]
mov eax, 1
mov ebx, 0x54fd88
shl eax, cl
mov dword [esp + 0x14], edx
sub edx, ebx
mov dword [esp + 0x20], eax
lea eax, [eax*4 + 0x1b]
sar edx, 3
mov ecx, eax
shr ecx, 3
add edx, ecx
cmp edx, 0x120
ja 0x440076
mov edx, dword [esp + 0x14]
mov ebx, edi
mov edi, dword [esp + 0x20]
lea eax, [edx + ecx*8]
mov dword [0x54c060], eax
mov eax, edx
jmp 0x4401c0
mov ecx, dword [0x54fd78]
call fcn.00430c50
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edi], ecx
mov dword [eax*4 + 0x54fd58], edi
mov edi, dword [0x54fd78]
cmp edi, 1
ja 0x440374
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x44036e
mov ecx, 0x54fd7c
mov edi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x440374
mov edi, dword [0x54fd78]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov dword [ecx + ebx*4 + 0x14], esi
inc ebx
mov dword [ecx + 0x10], ebx
inc edx
inc edi
cmp edx, eax
jne 0x440090
mov ebx, dword [esp + 0x50]
lea eax, [ecx + 0xc]
mov dword [esp + 4], ecx
mov dword [esp + 0x84], eax
xor eax, eax
mov ecx, ebx
neg ecx
test ebx, ebx
cmovns ecx, eax
cmovs ebx, eax
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x50], ebx
lea eax, [ebx + ecx]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x3c]
xor eax, dword [esp + 0x24]
or eax, ecx
sete al
xor al, 1
mov byte [esp + 0x5f], al
jmp 0x440400
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x440400
mov esi, dword [0x54fd78]
jmp 0x4403e8
mov edi, dword [esp + 4]
mov ebx, dword [edi + 4]
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x440453
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x44044d
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x440453
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
cmp ebx, 7
jg 0x440480
mov ecx, dword [ebx*4 + 0x54fd58]
test ecx, ecx
je 0x4405da
mov eax, dword [ecx]
mov dword [ebx*4 + 0x54fd58], eax
mov ebx, ecx
jmp 0x4404a8
mov esi, 1
mov ecx, ebx
shl esi, cl
lea edi, [esi*4 + 0x1b]
and edi, 0xfffffff8
push edi
call fcn.00429c60
add esp, 4
mov edi, dword [esp + 4]
mov dword [eax + 4], ebx
mov ebx, eax
mov dword [eax + 8], esi
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x4404f4
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4404ee
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x4404f4
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov dword [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
lea eax, [ebx + 0xc]
mov ecx, dword [edi + 0x10]
lea ecx, [ecx*4 + 8]
push ecx
push dword [esp + 0x88]
push eax
call fcn.004d9f90
add esp, 0xc
lea eax, [esp + 0xf8]
lea ecx, [esp + 0xf0]
lea edx, [esp + 0xfc]
push eax
call fcn.004436b0
add esp, 4
mov dword [esp + 0xc], eax
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x440595
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x44058f
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x440595
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov edi, dword [0x54fd5c]
test edi, edi
je 0x4405b2
mov eax, dword [edi]
mov dword [0x54fd5c], eax
jmp 0x44063e
mov edi, dword [0x54c060]
mov ecx, 0x54fd88
mov eax, edi
sub eax, ecx
sar eax, 3
add eax, 4
cmp eax, 0x120
ja 0x440624
mov eax, edi
add eax, 0x20
mov dword [0x54c060], eax
jmp 0x440630
mov esi, 1
mov ecx, ebx
shl esi, cl
mov ecx, 0x54fd88
lea edi, [esi*4 + 0x1b]
mov eax, edi
shr eax, 3
mov dword [esp + 0x2c], eax
mov eax, dword [0x54c060]
mov edx, eax
sub edx, ecx
mov ecx, dword [esp + 0x2c]
sar edx, 3
add edx, ecx
cmp edx, 0x120
ja 0x440490
lea ecx, [eax + ecx*8]
mov dword [0x54c060], ecx
jmp 0x44049c
push 0x20
call fcn.00429c60
add esp, 4
mov edi, eax
mov dword [edi + 4], 1
mov dword [edi + 8], 2
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x44068a
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x440684
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x44068a
mov esi, dword [0x54fd78]
mov dword [esp + 0x20], ebx
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov dword [edi + 0xc], 0
mov dword [edi + 0x14], 1
mov dword [edi + 0x10], 1
mov dword [esp + 0x2c], edi
xor edx, edx
mov edi, 0
mov ebx, 0x36
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0xf8]
mov esi, eax
neg esi
test eax, eax
cmovns esi, edx
cmovns edi, eax
sub eax, dword [esp + 0x48]
sub ebx, ecx
add eax, ecx
mov ecx, edi
add ecx, dword [esp + 0x64]
cmp eax, 0xfffffc02
jg 0x44072c
mov edi, ecx
mov ecx, 0xfffffc03
sub ecx, eax
sub ebx, ecx
cmp ecx, 0x1f
jg 0x44070e
mov eax, 1
shl eax, cl
mov dword [esp + 0x10], eax
jmp 0x44072a
mov edx, 0x7ff00000
cmp ecx, 0x33
jg 0x44072a
add ecx, 0xffffffe0
mov edx, 1
mov dword [esp + 0x10], 1
shl edx, cl
mov ecx, edi
add esi, dword [esp + 0x80]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x44], edx
add esi, ebx
add ebx, ecx
cmp ebx, esi
mov eax, esi
cmovle eax, ebx
cmp eax, ecx
cmovg eax, ecx
test eax, eax
jle 0x440755
sub ebx, eax
sub esi, eax
sub ecx, eax
mov edx, dword [esp + 0x64]
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x440855
mov ecx, edi
call fcn.00443a50
mov edi, dword [esp + 0xc]
mov ecx, eax
mov dword [esp + 0x2c], eax
mov edx, edi
call fcn.00444140
test edi, edi
je 0x44079c
cmp dword [edi + 4], 8
mov dword [esp + 0x18], eax
jl 0x440866
push edi
call fcn.00429ca0
add esp, 4
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x2c]
test ebx, ebx
jle 0x4407ad
mov ecx, eax
mov edx, ebx
call fcn.004442a0
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
test edx, edx
jle 0x4407c6
mov ecx, ebx
call fcn.00443a50
mov ebx, eax
test esi, esi
jle 0x4407d5
mov ecx, ebx
mov edx, esi
call fcn.004442a0
mov ebx, eax
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x4407e8
mov edx, eax
mov ecx, edi
call fcn.004442a0
mov edi, eax
mov ecx, dword [esp + 0x18]
mov edx, ebx
mov dword [esp + 0x20], ebx
call fcn.00444460
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov dword [eax + 0xc], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], edi
mov eax, dword [edi + 0x10]
mov esi, edx
mov dword [esp + 0x1c], ecx
sub esi, eax
mov dword [esp + 0x14], eax
mov eax, esi
jne 0x4408c7
mov ebx, edx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
lea eax, [ecx + 0x14]
lea ecx, [ecx + edx*4 + 0x14]
lea edx, [edi + edx*4 + 0x10]
nop dword [eax + eax]
mov edi, dword [edx]
cmp dword [ecx - 4], edi
jne 0x4408b7
add ecx, 0xfffffffc
add edx, 0xfffffffc
cmp ecx, eax
ja 0x440840
xor eax, eax
jmp 0x4408c1
mov eax, dword [esp + 0xc]
test ebx, ebx
jg 0x4407a4
jmp 0x4407ad
mov edi, dword [0x54fd78]
cmp edi, 1
ja 0x440e8e
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x440e88
mov ecx, 0x54fd7c
mov edi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x440e8e
setae al
movzx eax, al
lea eax, [eax + eax - 1]
mov edi, dword [esp + 0x2c]
mov edx, ebx
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x3c], ecx
jle 0x4408f0
test eax, eax
jg 0x4408f0
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 8]
je 0x4409b1
jmp 0x441876
test eax, eax
js 0x4409a2
je 0x440bf7
mov edi, dword [esp + 0xc]
xor eax, eax
mov ebx, dword [edi + edx*4 + 0x10]
cmp ebx, 0x10000
mov ecx, ebx
mov dword [esp + 0x10], ebx
setb al
shl ecx, 0x10
cmp ebx, 0xffff
cmova ecx, ebx
mov ebx, edx
shl eax, 4
mov edx, ecx
shl edx, 8
cmp ecx, 0xffffff
cmova edx, ecx
lea ecx, [eax + 8]
cmova ecx, eax
mov eax, edx
shl eax, 4
cmp edx, 0xfffffff
cmova eax, edx
lea edx, [ecx + 4]
cmova edx, ecx
lea ecx, [eax*4]
cmp eax, 0x3fffffff
cmova ecx, eax
lea eax, [edx + 2]
cmova eax, edx
lea edx, [edi + ebx*4 + 0x14]
test ecx, ecx
mov dword [esp + 0x60], edx
lea edx, [edi + ebx*4 + 0x10]
lea edi, [edi + 0x14]
mov dword [esp + 0x44], edi
js 0x440c82
test ecx, 0x40000000
jne 0x440c81
mov ebx, dword [esp + 0x10]
mov eax, 0x20
mov dword [esp + 0x70], 0
jmp 0x440ccb
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 8]
jne 0x4417e4
cmp dword [esp + 0xf0], 0
jne 0x4417dc
mov eax, dword [esp + 0xf4]
xor ebx, ebx
test eax, 0xfffff
jne 0x44185a
and eax, 0x7ff00000
cmp eax, 0x6b00001
jb 0x44185a
cmp edx, 1
jg 0x4409f7
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x441867
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
cmp edx, eax
jl 0x440a17
nop word cs:[eax + eax]
nop
inc ebx
add eax, eax
cmp edx, eax
jge 0x440a10
mov dword [esp + 0x44], edx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x440a67
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x440a61
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x440a67
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
cmp ebx, 7
jg 0x440a8d
mov eax, dword [ebx*4 + 0x54fd58]
test eax, eax
je 0x440c37
mov ecx, dword [eax]
mov dword [ebx*4 + 0x54fd58], ecx
jmp 0x440aaf
mov edi, 1
mov ecx, ebx
shl edi, cl
lea eax, [edi*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.00429c60
add esp, 4
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov dword [esp + 0x10], eax
mov edi, dword [0x54fd78]
cmp edi, 1
ja 0x440aff
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x440af9
mov ecx, 0x54fd7c
mov edi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x440aff
mov edi, dword [0x54fd78]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov edi, 0xffffffeb
mov dword [ecx + 0x10], 0
lea eax, [ecx + 0x14]
mov dword [ecx + 0xc], 0
lea edx, [esi + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x10]
lea eax, [esi + eax*4 + 0x14]
cmp eax, edx
cmova edx, eax
sub edi, esi
add edi, edx
xor edx, edx
shr edi, 2
mov dword [esp + 0x70], edi
mov edi, 0x14
nop dword [eax]
mov ebx, dword [esi + edi]
add ebx, ebx
or ebx, edx
mov dword [ecx + edi], ebx
lea ebx, [esi + edi + 4]
mov edx, dword [esi + edi]
add edi, 4
shr edx, 0x1f
cmp ebx, eax
jb 0x440b50
mov eax, dword [esp + 0x70]
cmp edx, 1
mov edi, dword [esp + 0x2c]
mov ebx, 0x7ff00000
mov dword [ecx + eax*4 + 0x18], edx
mov edx, dword [esp + 0x44]
sbb edx, 0
inc edx
test esi, esi
mov dword [ecx + 0x10], edx
je 0x4411e6
cmp dword [esi + 4], 8
jl 0x440ba6
push esi
call fcn.00429ca0
add esp, 4
jmp 0x4411e2
mov ecx, dword [0x54fd78]
cmp ecx, 1
ja 0x441173
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x44116d
mov ecx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
mov ecx, 0x54fd7c
add esp, 0x10
jmp 0x441173
mov eax, dword [esp + 0xf4]
mov ecx, eax
and ecx, 0xfffff
cmp dword [esp + 0x1c], 0
jne 0x4418bb
or ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0x44]
jne 0x44193e
mov ebx, 0x7ff00000
cmp dword [esp + 0x48], 0
jne 0x441245
jmp 0x441259
mov edx, dword [0x54c060]
mov edi, 1
mov ecx, ebx
shl edi, cl
mov ecx, 0x54fd88
lea eax, [edi*4 + 0x1b]
mov esi, eax
mov dword [esp + 0x10], edx
sub edx, ecx
shr esi, 3
sar edx, 3
add edx, esi
cmp edx, 0x120
ja 0x440a9d
mov ecx, dword [esp + 0x10]
lea eax, [ecx + esi*8]
mov dword [0x54c060], eax
mov eax, ecx
jmp 0x440aa9
inc eax
mov ebx, dword [esp + 0x10]
mov ecx, 0x20
sub ecx, eax
cmp eax, 0xa
mov dword [esp + 0x70], ecx
jg 0x440ccb
mov ecx, 0xb
mov edi, ebx
sub ecx, eax
mov dword [esp + 0x10], ecx
shr edi, cl
mov ecx, edx
xor edx, edx
cmp ecx, dword [esp + 0x44]
jbe 0x440cb6
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx - 8]
add eax, 0x15
mov ecx, eax
shl ebx, cl
mov ecx, dword [esp + 0x10]
shr edx, cl
or edx, ebx
mov dword [esp + 0x10], edx
jmp 0x440d26
xor edi, edi
cmp edx, dword [esp + 0x44]
jbe 0x440cdf
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx - 8]
add ecx, 0xfffffff8
mov edx, ecx
mov dword [esp + 0x60], edx
mov edx, eax
mov dword [esp + 0x10], edi
add edx, 0xfffffff5
je 0x440d24
mov ecx, edx
shl ebx, cl
mov ecx, 0x2b
sub ecx, eax
xor eax, eax
mov dword [esp + 0x6c], ecx
shr edi, cl
mov ecx, dword [esp + 0x60]
cmp ecx, dword [esp + 0x44]
jbe 0x440d0e
mov eax, dword [ecx - 4]
mov ecx, edx
mov edx, dword [esp + 0x10]
or ebx, edi
shl edx, cl
mov ecx, dword [esp + 0x6c]
shr eax, cl
or edx, eax
mov dword [esp + 0x10], edx
mov edi, ebx
or edi, 0x3ff00000
mov ebx, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x2c]
mov edx, dword [edi + ebx*4 + 0x10]
cmp edx, 0x10000
mov ecx, edx
mov dword [esp + 0x44], edx
setb al
shl ecx, 0x10
cmp edx, 0xffff
cmova ecx, edx
shl eax, 4
mov edx, ecx
shl edx, 8
cmp ecx, 0xffffff
cmova edx, ecx
lea ecx, [eax + 8]
cmova ecx, eax
mov eax, edx
shl eax, 4
cmp edx, 0xfffffff
cmova eax, edx
lea edx, [ecx + 4]
cmova edx, ecx
lea ecx, [eax*4]
cmp eax, 0x3fffffff
cmova ecx, eax
lea eax, [edx + 2]
cmova eax, edx
lea edx, [edi + ebx*4 + 0x14]
lea ebx, [edi + ebx*4 + 0x10]
test ecx, ecx
lea edi, [edi + 0x14]
mov dword [esp + 0x68], edx
mov dword [esp + 0x14], ebx
js 0x440dcb
test ecx, 0x40000000
mov ecx, dword [esp + 0x10]
jne 0x440dd1
mov eax, 0x20
mov dword [esp + 0x6c], 0
jmp 0x440e22
mov ecx, dword [esp + 0x10]
jmp 0x440dd2
inc eax
mov edx, 0x20
mov dword [esp + 0x10], ecx
sub edx, eax
cmp eax, 0xa
mov dword [esp + 0x6c], edx
jg 0x440e22
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x44]
mov edx, 0xb
xor ebx, ebx
sub edx, eax
mov ecx, edx
shr edi, cl
mov ecx, dword [esp + 0x74]
cmp dword [esp + 0x14], ecx
jbe 0x440e0c
mov ecx, dword [esp + 0x68]
mov ebx, dword [ecx - 8]
add eax, 0x15
mov ecx, eax
mov eax, dword [esp + 0x44]
shl eax, cl
mov ecx, edx
shr ebx, cl
or ebx, eax
jmp 0x440f18
mov ecx, dword [esp + 0x14]
xor ebx, ebx
cmp ecx, edi
jbe 0x440e36
mov ecx, dword [esp + 0x68]
mov ebx, dword [ecx - 8]
add ecx, 0xfffffff8
mov edx, eax
add edx, 0xfffffff5
je 0x440f14
mov dword [esp + 0x14], ecx
mov ecx, edx
mov dword [esp + 0x74], edi
mov edi, ebx
shl dword [esp + 0x44], cl
mov ecx, 0x2b
sub ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x68], ecx
shr edi, cl
xor ecx, ecx
cmp eax, dword [esp + 0x74]
jbe 0x440e6d
mov ecx, dword [eax - 4]
mov eax, dword [esp + 0x44]
or eax, edi
mov edi, ecx
mov ecx, edx
shl ebx, cl
mov ecx, dword [esp + 0x68]
shr edi, cl
or ebx, edi
mov edi, eax
jmp 0x440f18
mov edi, dword [0x54fd78]
mov ecx, edi
call fcn.00430c50
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edx], ecx
mov dword [eax*4 + 0x54fd58], edx
mov edi, dword [0x54fd78]
cmp edi, 1
ja 0x440ef8
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x440ef2
mov ecx, 0x54fd7c
mov edi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x440ef8
mov edi, dword [0x54fd78]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
test ebx, ebx
jg 0x4407a4
jmp 0x4407ad
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x70]
shl esi, 5
mov edx, dword [esp + 0x60]
or edi, 0x3ff00000
movd xmm2, dword [esp + 0x10]
movd xmm1, ebx
mov ecx, edi
sub eax, dword [esp + 0x6c]
add esi, eax
mov eax, esi
shl eax, 0x14
sub ecx, eax
add eax, edx
test esi, esi
cmovle eax, edx
cmovg ecx, edi
movd xmm0, ecx
movd xmm3, eax
punpckldq xmm1, xmm0
punpckldq xmm2, xmm3
movsd xmm0, qword [0x4fe2b0]
divsd xmm2, xmm1
ucomisd xmm0, xmm2
jae 0x440fc1
movsd xmm0, qword [0x4fe210]
cmp dword [esp + 0x1c], 0
mov edi, dword [esp + 0x2c]
mulsd xmm2, xmm0
movapd xmm1, xmm2
jne 0x440f91
xorpd xmm1, xmmword [0x4fe290]
fnstcw word [esp + 0x78]
mov eax, dword [esp + 0x78]
mov ecx, eax
shr eax, 0xb
shr ecx, 9
and eax, 1
and ecx, 2
lea eax, [eax + ecx + 1]
test al, 3
jne 0x440fbb
movsd xmm0, qword [0x4fe210]
addsd xmm1, xmm0
movapd xmm0, xmm2
jmp 0x440fdc
movsd xmm0, qword [0x4fe220]
cmp dword [esp + 0x1c], 0
mov edi, dword [esp + 0x2c]
movapd xmm1, xmm0
je 0x441645
mov ecx, dword [esp + 0xf4]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7fe00000
jne 0x44108e
add ecx, 0xfcb00000
mov edx, dword [esp + 0xf0]
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xf4], ecx
and ecx, 0x7ff00000
add ecx, 0xfcc00000
movd xmm2, ecx
pshufd xmm2, xmm2, 0x51
mulsd xmm1, xmm2
addsd xmm1, qword [esp + 0xf0]
movsd qword [esp + 0xf0], xmm1
movsd qword [esp + 0x90], xmm1
mov ecx, dword [esp + 0x94]
mov edi, ecx
and edi, 0x7fe00000
cmp edi, 0x7ca00000
jb 0x44110f
mov edi, dword [esp + 0x2c]
not edx
xor esi, 0x7fefffff
or esi, edx
je 0x43f72d
mov dword [esp + 0xf4], 0x7fefffff
mov dword [esp + 0xf0], 0xffffffff
jmp 0x44128c
cmp dword [esp + 0x48], 0
je 0x44112c
cmp eax, 0x6a00000
ja 0x44112c
movsd xmm2, qword [0x4fe310]
ucomisd xmm2, xmm0
jb 0x4416f7
movsd xmm2, qword [0x4fe228]
movapd xmm1, xmm0
cvttsd2si ecx, xmm0
subsd xmm1, xmm2
cvttsd2si edx, xmm1
movq xmm1, qword [0x4fe240]
xor edx, 0x80000000
ucomisd xmm0, xmm2
movsd xmm0, qword [0x4fe220]
cmovae ecx, edx
test ecx, ecx
je 0x4410fb
movd xmm0, ecx
por xmm0, xmm1
subsd xmm0, xmm1
cmp dword [esp + 0x1c], 0
je 0x4416eb
movapd xmm1, xmm0
jmp 0x4416f7
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x2c]
add ecx, 0x3500000
mov dword [esp + 0xf4], ecx
jmp 0x44176b
lea ecx, [eax - 0x3400000]
movd xmm2, ecx
pshufd xmm2, xmm2, 0x51
mulsd xmm1, xmm2
addsd xmm1, qword [esp + 0xf0]
movsd qword [esp + 0xf0], xmm1
movsd qword [esp + 0xa8], xmm1
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xac]
jmp 0x44176b
mov ecx, dword [0x54fd78]
call fcn.00430c50
mov eax, dword [esi + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [esi], ecx
mov dword [eax*4 + 0x54fd58], esi
mov edi, dword [0x54fd78]
cmp edi, 1
ja 0x4411d7
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4411d1
mov ecx, 0x54fd7c
mov edi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x4411d7
mov edi, dword [0x54fd78]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x10]
mov edx, ecx
mov ecx, dword [edi + 0x10]
sub eax, ecx
je 0x441200
test eax, eax
jle 0x441888
mov eax, dword [esp + 0x10]
jmp 0x44123a
lea eax, [edx + ecx*4 + 0x14]
lea ecx, [edi + ecx*4 + 0x10]
nop dword [eax + eax]
mov edx, dword [eax - 4]
mov edi, dword [ecx]
cmp edx, edi
jne 0x44122a
add eax, 0xfffffffc
add ecx, 0xfffffffc
cmp eax, dword [esp + 0x14]
ja 0x441210
jmp 0x4417f6
cmp edx, edi
jb 0x4417f6
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x48], 0
je 0x441259
mov eax, dword [esp + 0xf4]
and eax, ebx
cmp eax, 0x6b00000
jbe 0x441897
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x24]
and eax, ebx
add eax, 0xfff00000
or eax, 0xfffff
cmp dword [esp + 0x3c], ecx
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf0], 0xffffffff
jle 0x44186f
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
test eax, eax
je 0x4412a7
cmp dword [eax + 4], 8
jl 0x4412de
push eax
call fcn.00429ca0
add esp, 4
test ebx, ebx
je 0x441540
cmp dword [ebx + 4], 8
jl 0x44132f
push ebx
call fcn.00429ca0
add esp, 4
test edi, edi
je 0x44156e
cmp dword [edi + 4], 8
jl 0x441380
push edi
call fcn.00429ca0
add esp, 4
jmp 0x44156e
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x4413d7
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4413d1
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x4413d7
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x44144c
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441446
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x44144c
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x4414bd
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4414b7
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x4414bd
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edx], ecx
mov dword [eax*4 + 0x54fd58], edx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441527
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441521
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441527
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov eax, dword [ebx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [ebx], ecx
mov dword [eax*4 + 0x54fd58], ebx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441550
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x44154a
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441550
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edi], ecx
mov dword [eax*4 + 0x54fd58], edi
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441567
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441561
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441567
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebx, ebx
jne 0x4412af
nop word cs:[eax + eax]
test edi, edi
jne 0x4412c6
jmp 0x44156e
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test edi, edi
jne 0x4412c6
jmp 0x44156e
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov edi, dword [esp + 0xc]
test edi, edi
je 0x440400
cmp dword [edi + 4], 8
jl 0x44158e
push edi
call fcn.00429ca0
add esp, 4
jmp 0x440400
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x4415da
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4415d4
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x4415da
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edi], ecx
mov dword [eax*4 + 0x54fd58], edi
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x4403e8
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4403f1
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x4403e8
mov eax, dword [esp + 0xf0]
cmp eax, 1
je 0x4416c8
movsd xmm0, qword [0x4fe220]
movsd xmm1, qword [0x4fe320]
test eax, eax
jne 0x440fdc
test dword [esp + 0xf4], 0xfffff
movsd xmm0, qword [0x4fe220]
movsd xmm1, qword [0x4fe320]
jne 0x440fdc
movapd xmm0, xmm2
movsd xmm1, qword [0x4fe210]
cmpltsd xmm2, qword [0x4fe220]
movapd xmm3, xmm1
mulsd xmm0, xmm1
movapd xmm1, xmm2
andpd xmm1, xmm3
andnpd xmm2, xmm0
orpd xmm2, xmm1
movapd xmm1, xmm2
xorpd xmm1, xmmword [0x4fe290]
jmp 0x440fbb
cmp dword [esp + 0xf4], 0
movsd xmm0, qword [0x4fe220]
movsd xmm1, qword [0x4fe320]
jne 0x440fdc
jmp 0x44359f
movapd xmm1, xmm0
xorpd xmm1, xmmword [0x4fe290]
mov ecx, 0x6b00000
movsd qword [esp + 0xa0], xmm1
sub ecx, eax
movd xmm2, dword [esp + 0xa0]
add ecx, dword [esp + 0xa4]
movd xmm1, ecx
lea ecx, [eax - 0x3400000]
punpckldq xmm2, xmm1
movd xmm1, ecx
pshufd xmm1, xmm1, 0x51
mulsd xmm1, xmm2
addsd xmm1, qword [esp + 0xf0]
movsd qword [esp + 0xf0], xmm1
movsd qword [esp + 0x98], xmm1
ucomisd xmm1, qword [0x4fe218]
jne 0x44175d
jnp 0x44194d
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov esi, ecx
and esi, 0x7ff00000
cmp eax, esi
setne al
or al, byte [esp + 0x5f]
jne 0x44128c
cmp dword [esp + 0x1c], 0
cvttsd2si eax, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
subsd xmm0, xmm1
jne 0x4417a2
and ecx, 0xfffff
or edx, ecx
je 0x4417c6
movsd xmm1, qword [0x503400]
mov eax, dword [esp + 8]
xor ebx, ebx
ucomisd xmm1, xmm0
ja 0x441808
ucomisd xmm0, qword [0x503408]
jbe 0x44128c
jmp 0x441808
movsd xmm1, qword [0x503410]
mov eax, dword [esp + 8]
ucomisd xmm1, xmm0
jbe 0x44128c
mov dword [esp + 0x1c], 0
xor ebx, ebx
cmp dword [esp + 0x18], 0
jne 0x441a18
jmp 0x441af1
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
cmp dword [esp + 0x18], 0
jne 0x441a18
jmp 0x441af1
mov edi, 1
mov ecx, ebx
mov esi, 0x54fd88
shl edi, cl
mov ecx, dword [0x54c060]
lea eax, [edi*4 + 0x1b]
mov edx, ecx
sub edx, esi
mov esi, eax
shr esi, 3
sar edx, 3
add edx, esi
cmp edx, 0x120
ja 0x43fc7d
lea eax, [ecx + esi*8]
mov dword [0x54c060], eax
jmp 0x43fc8b
mov dword [esp + 0x1c], 0
jmp 0x441a09
mov dword [esp + 0x1c], 0
xor ebx, ebx
jmp 0x441a09
mov bl, 1
cmp dword [esp + 0x18], 0
jne 0x441a18
jmp 0x441af1
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov dword [esp + 0xc], eax
jmp 0x441a09
mov ecx, dword [esp + 0x24]
xor ebx, ebx
cmp dword [esp + 0x3c], ecx
jg 0x441a09
cmp eax, 0x3700000
ja 0x441a09
mov ebx, dword [esp + 0x38]
jmp 0x442f98
cmp ecx, 0xfffff
jne 0x441958
cmp dword [esp + 0x48], 0
mov edx, dword [esp + 0xf0]
mov esi, 0xffffffff
je 0x4418fb
mov edi, eax
and edi, 0x7ff00000
cmp edi, 0x6a00000
ja 0x4418fb
shr edi, 0x14
mov ecx, 0x6b
mov esi, 0xffffffff
sub ecx, edi
shl esi, cl
cmp edx, esi
jne 0x441954
mov edi, dword [esp + 0x2c]
cmp eax, 0x7fefffff
jne 0x441913
cmp edx, 0xffffffff
je 0x43f72d
and eax, 0x7ff00000
mov dword [esp + 0x1c], 0
xor ebx, ebx
add eax, 0x100000
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf0], 0
jmp 0x441a09
mov cl, 1
test edx, edx
je 0x441962
test eax, edx
jne 0x441973
jmp 0x44186f
mov bl, 1
jmp 0x441a09
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
xor ecx, ecx
test edx, edx
jne 0x441944
mov edx, dword [esp + 0x10]
test dword [esp + 0xf0], edx
je 0x44186f
mov edx, eax
and edx, 0x7ff00000
add edx, 0xfcc00000
cmp dword [esp + 0x48], 0
movd xmm0, edx
pshufd xmm0, xmm0, 0x51
je 0x4419be
shr eax, 0x14
mov edx, 0x6b
and eax, 0x7ff
sub edx, eax
mov eax, dword [esp + 0x24]
jle 0x4419c2
shl edx, 0x14
add edx, 0x3ff00000
movd xmm1, edx
pshufd xmm1, xmm1, 0x51
mulsd xmm0, xmm1
jmp 0x4419c2
mov eax, dword [esp + 0x24]
movsd xmm1, qword [esp + 0xf0]
test cl, cl
je 0x4419ed
subsd xmm1, xmm0
xorpd xmm0, xmm0
ucomisd xmm1, xmm0
movsd qword [esp + 0xf0], xmm1
jne 0x4419fa
jp 0x4419fa
jmp 0x4435a3
addsd xmm0, xmm1
movsd qword [esp + 0xf0], xmm0
mov eax, 1
xor ebx, ebx
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 8]
cmp dword [esp + 0x18], 0
je 0x441af1
mov eax, dword [esp + 0x18]
cmp dword [eax + 4], 8
jl 0x441a30
push eax
call fcn.00429ca0
add esp, 4
jmp 0x441aed
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441a7c
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441a76
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441a7c
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edx], ecx
mov dword [eax*4 + 0x54fd58], edx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441ae6
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441ae0
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441ae6
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 8]
cmp dword [esp + 0x20], 0
je 0x441bd5
mov eax, dword [esp + 0x20]
cmp dword [eax + 4], 8
jl 0x441b14
push eax
call fcn.00429ca0
add esp, 4
jmp 0x441bd1
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441b60
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441b5a
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441b60
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edx], ecx
mov dword [eax*4 + 0x54fd58], edx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441bca
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441bc4
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441bca
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 8]
test edi, edi
je 0x441cae
cmp dword [edi + 4], 8
jl 0x441bf1
push edi
call fcn.00429ca0
add esp, 4
jmp 0x441caa
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441c3d
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441c37
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441c3d
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edi], ecx
mov dword [eax*4 + 0x54fd58], edi
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441ca3
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441c9d
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441ca3
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0xc]
test ecx, ecx
je 0x441d93
cmp dword [ecx + 4], 8
jl 0x441cd2
push ecx
call fcn.00429ca0
add esp, 4
jmp 0x441d8f
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441d1e
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441d18
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441d1e
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov edx, dword [esp + 4]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edx], ecx
mov dword [eax*4 + 0x54fd58], edx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441d88
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441d82
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441d88
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 8]
test edi, edi
je 0x441e6c
cmp dword [edi + 4], 8
jl 0x441daf
push edi
call fcn.00429ca0
add esp, 4
jmp 0x441e68
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441dfb
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441df5
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441dfb
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edi], ecx
mov dword [eax*4 + 0x54fd58], edi
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441e61
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441e5b
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441e61
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 8]
test bl, bl
mov ebx, dword [esp + 0x38]
je 0x442fa5
mov ecx, dword [esp + 0x58]
movsd xmm0, qword [esp + 0xf0]
xorpd xmm1, xmm1
lea ebx, [ecx + eax]
ucomisd xmm0, xmm1
mov dword [esp + 0x14], ebx
jne 0x441ee6
jp 0x441ee6
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x441f59
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441f53
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x441f59
lea eax, [esp + 0x104]
lea ecx, [esp + 0xf0]
lea edx, [esp + 0x100]
push eax
call fcn.004436b0
add esp, 4
mov edx, dword [esp + 0x48]
mov ebx, 0x35
mov edi, dword [esp + 0x100]
sub ebx, dword [esp + 0x104]
mov ecx, edx
neg ecx
lea ecx, [edi + ecx + 0x432]
sub edi, edx
cmp ebx, ecx
mov dword [esp + 0x100], edi
cmovg ebx, ecx
mov ecx, eax
inc ebx
mov edx, ebx
call fcn.004442a0
mov dword [esp + 4], eax
or byte [eax + 0x14], 1
mov dword [esp + 0x50], 0
jmp 0x44205a
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov edi, dword [0x54fd5c]
test edi, edi
je 0x441f73
mov eax, dword [edi]
mov dword [0x54fd5c], eax
jmp 0x441fb6
mov edi, dword [0x54c060]
mov eax, 0x54fd88
mov ecx, edi
sub ecx, eax
sar ecx, 3
add ecx, 4
cmp ecx, 0x120
ja 0x441f9c
mov eax, edi
add eax, 0x20
mov dword [0x54c060], eax
jmp 0x441fa8
push 0x20
call fcn.00429c60
add esp, 4
mov edi, eax
mov dword [edi + 4], 1
mov dword [edi + 8], 2
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x442002
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x441ffc
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x442002
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov dword [edi + 0xc], 0
mov dword [edi + 0x14], 1
mov dword [edi + 0x10], 1
mov dword [esp + 4], edi
mov dword [esp + 0x104], 1
mov dword [esp + 0xf4], 0x3700000
mov dword [esp + 0x100], 0xfffffbcd
mov dword [esp + 0x50], 1
mov dword [esp + 0x1c], 0
mov edi, 0xfffffbcd
xor ebx, ebx
mov esi, 1
sub esi, dword [esp + 0x14]
add edi, esi
sub edi, ebx
mov dword [esp + 0x100], edi
mov ebx, dword [0x54fd78]
cmp ebx, 1
ja 0x4420ba
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4420b4
mov ecx, 0x54fd7c
mov ebx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x4420ba
mov ebx, dword [0x54fd78]
mov ecx, ebx
call fcn.00430c50
mov eax, dword [0x54fd5c]
mov dword [esp + 0x10], esi
test eax, eax
je 0x4420dd
mov esi, eax
mov eax, dword [eax]
mov ebx, dword [esp + 0x14]
mov dword [0x54fd5c], eax
jmp 0x442124
mov eax, dword [0x54c060]
mov edx, 0x54fd88
mov ebx, dword [esp + 0x14]
mov ecx, eax
sub ecx, edx
sar ecx, 3
add ecx, 4
cmp ecx, 0x120
ja 0x44210a
mov ecx, eax
add ecx, 0x20
mov dword [0x54c060], ecx
jmp 0x442114
push 0x20
call fcn.00429c60
add esp, 4
mov esi, eax
mov dword [eax + 4], 1
mov dword [eax + 8], 2
mov edi, dword [0x54fd78]
cmp edi, 1
ja 0x442170
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x44216a
mov ecx, 0x54fd7c
mov edi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x442170
mov edi, dword [0x54fd78]
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp ebx, 2
mov dword [esi + 0xc], 0
mov dword [esi + 0x14], 1
mov dword [esi + 0x10], 1
jl 0x4421a6
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x58]
lea edx, [ecx + eax - 1]
mov ecx, esi
call fcn.00443a50
jmp 0x4421be
cmp ebx, 1
je 0x4421bc
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x10]
call fcn.00443a50
mov dword [esp + 4], eax
mov eax, esi
mov ecx, dword [esp + 0x100]
xor edx, edx
mov ebx, eax
mov edi, ecx
neg edi
test ecx, ecx
cmovg edi, edx
cmovns edx, ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [eax + ecx*4 + 0x10]
xor eax, eax
cmp ecx, 0x10000
mov esi, ecx
setb al
shl esi, 0x10
cmp ecx, 0xffff
cmova esi, ecx
shl eax, 4
mov ecx, esi
shl ecx, 8
cmp esi, 0xffffff
cmova ecx, esi
lea esi, [eax + 8]
cmova esi, eax
mov eax, ecx
shl eax, 4
cmp ecx, 0xfffffff
cmova eax, ecx
lea ecx, [esi + 4]
cmova ecx, esi
lea esi, [eax*4]
cmp eax, 0x3fffffff
cmova esi, eax
lea eax, [ecx + 2]
cmova eax, ecx
test esi, esi
js 0x442247
mov ecx, 0x20
test esi, 0x40000000
je 0x442249
inc eax
mov ecx, eax
xor eax, eax
test edi, edi
mov esi, 0x1c
cmovns eax, edi
sub esi, eax
add esi, ecx
and esi, 0x1f
add edx, esi
jle 0x44226d
mov ecx, dword [esp + 4]
call fcn.004442a0
mov dword [esp + 4], eax
add esi, edi
jle 0x442282
mov ecx, ebx
mov edx, esi
call fcn.004442a0
mov edi, dword [esp + 0x28]
mov edx, eax
jmp 0x442288
mov edi, dword [esp + 0x28]
mov edx, ebx
mov ebx, dword [esp + 4]
mov dword [esp + 0x14], edx
mov ecx, ebx
call fcn.00448690
test eax, eax
jne 0x442550
mov ecx, dword [ebx + 0x10]
xor edi, edi
xor esi, esi
mov dword [esp + 8], 0
nop
mov eax, 0xa
mul dword [ebx + esi*4 + 0x14]
add eax, edi
mov edi, edx
adc edi, dword [esp + 8]
mov dword [ebx + esi*4 + 0x14], eax
inc esi
cmp esi, ecx
jl 0x4422b0
test edi, edi
je 0x442328
mov ebx, dword [esp + 4]
cmp ecx, dword [ebx + 8]
jl 0x442539
mov dword [esp + 0x10], ecx
mov ebx, dword [ebx + 4]
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x442337
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x442331
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x442337
mov ebx, dword [esp + 4]
jmp 0x442541
mov esi, dword [0x54fd78]
lea eax, [ebx + 1]
mov ecx, esi
mov dword [esp + 8], eax
call fcn.00430c50
cmp ebx, 6
jg 0x442368
mov eax, dword [ebx*4 + 0x54fd5c]
test eax, eax
je 0x442476
mov dword [esp + 8], eax
mov eax, dword [eax]
mov dword [ebx*4 + 0x54fd5c], eax
jmp 0x442394
mov ecx, dword [esp + 8]
mov ebx, 1
shl ebx, cl
lea esi, [ebx*4 + 0x1b]
and esi, 0xfffffff8
push esi
call fcn.00429c60
add esp, 4
mov ecx, dword [esp + 8]
mov dword [esp + 8], eax
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x4423e0
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4423da
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x4423e0
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, dword [esp + 8]
mov esi, dword [esp + 4]
mov dword [ecx + 0x10], 0
mov dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
lea ecx, [esi + 0xc]
mov edx, dword [esi + 0x10]
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call fcn.004d9f90
add esp, 0xc
cmp dword [esi + 4], 8
jl 0x44242c
push esi
call fcn.00429ca0
add esp, 4
jmp 0x442531
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x4424c0
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4424ba
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x4424c0
mov ecx, dword [esp + 8]
mov eax, dword [0x54c060]
mov ebx, 1
shl ebx, cl
mov ecx, 0x54fd88
mov edx, eax
lea esi, [ebx*4 + 0x1b]
sub edx, ecx
mov ecx, esi
sar edx, 3
shr ecx, 3
add edx, ecx
cmp edx, 0x120
ja 0x44237a
lea ecx, [eax + ecx*8]
mov dword [0x54c060], ecx
jmp 0x442386
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov edx, dword [esp + 4]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edx], ecx
mov dword [eax*4 + 0x54fd58], edx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x44252a
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x442524
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x44252a
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov dword [ebx + ecx*4 + 0x14], edi
inc ecx
mov dword [ebx + 0x10], ecx
mov edx, dword [esp + 0x14]
mov ecx, ebx
call fcn.00448690
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x4c], 0
jle 0x442885
xor edx, edx
nop dword [eax]
mov dword [esp + 4], ebx
movsx ebx, byte [edi + edx]
mov ecx, 0xffffffd0
sub ecx, eax
add ebx, ecx
jne 0x442bca
mov ebx, dword [esp + 4]
inc edx
mov eax, dword [ebx + 0x14]
mov edi, dword [ebx + 0x10]
test eax, eax
jne 0x44258f
cmp edi, 1
je 0x442bdf
mov ecx, 0xa
mov dword [esp + 8], edx
mul ecx
xor ecx, ecx
cmp edi, 2
mov dword [ebx + 0x14], eax
mov esi, edx
mov eax, edi
jl 0x4425f9
lea edi, [ebx + 0x18]
lea ebx, [eax - 1]
mov dword [esp + 0x10], eax
nop word cs:[eax + eax]
nop dword [eax]
mov eax, 0xa
mul dword [edi]
add eax, esi
mov esi, edx
mov dword [edi], eax
adc esi, ecx
add edi, 4
dec ebx
jne 0x4425c0
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x10]
or ecx, esi
je 0x442865
cmp eax, dword [ebx + 8]
jge 0x44260a
mov edi, ebx
jmp 0x442857
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x28]
or ecx, esi
jne 0x4425ed
jmp 0x442865
mov dword [esp + 0x10], eax
mov ebx, dword [ebx + 4]
mov edi, dword [0x54fd78]
cmp edi, 1
ja 0x44265d
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x442657
mov ecx, 0x54fd7c
mov edi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x44265d
mov edi, dword [0x54fd78]
lea ecx, [ebx + 1]
mov dword [esp + 0x24], ecx
mov ecx, edi
call fcn.00430c50
cmp ebx, 6
jg 0x44268a
mov edi, dword [ebx*4 + 0x54fd5c]
test edi, edi
je 0x442792
mov eax, dword [edi]
mov dword [ebx*4 + 0x54fd5c], eax
jmp 0x4426b4
mov ecx, dword [esp + 0x24]
mov ebx, 1
shl ebx, cl
lea eax, [ebx*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.00429c60
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x24]
mov dword [edi + 4], eax
mov dword [edi + 8], ebx
mov ebx, dword [0x54fd78]
cmp ebx, 1
ja 0x442700
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4426fa
mov ecx, 0x54fd7c
mov ebx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x442700
mov ebx, dword [0x54fd78]
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ebx, dword [esp + 4]
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
lea eax, [edi + 0xc]
mov edx, dword [ebx + 0x10]
lea ecx, [ebx + 0xc]
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call fcn.004d9f90
add esp, 0xc
cmp dword [ebx + 4], 8
jl 0x442748
push ebx
call fcn.00429ca0
add esp, 4
jmp 0x44284f
mov ecx, dword [0x54fd78]
cmp ecx, 1
ja 0x4427e4
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4427de
mov ecx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
mov ecx, 0x54fd7c
add esp, 0x10
jmp 0x4427e4
mov ecx, dword [esp + 0x24]
mov edi, dword [0x54c060]
mov eax, 1
mov ebx, 0x54fd88
shl eax, cl
mov edx, edi
mov dword [esp + 0x64], eax
lea eax, [eax*4 + 0x1b]
sub edx, ebx
mov ecx, eax
sar edx, 3
shr ecx, 3
add edx, ecx
cmp edx, 0x120
ja 0x44287c
mov ebx, dword [esp + 0x64]
lea eax, [edi + ecx*8]
mov dword [0x54c060], eax
jmp 0x4426aa
mov ecx, dword [0x54fd78]
call fcn.00430c50
mov eax, dword [ebx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [ebx], ecx
mov dword [eax*4 + 0x54fd58], ebx
mov ebx, dword [0x54fd78]
cmp ebx, 1
ja 0x442848
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x442842
mov ecx, 0x54fd7c
mov ebx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x442848
mov ebx, dword [0x54fd78]
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [edi + eax*4 + 0x14], esi
inc eax
mov ebx, edi
mov dword [edi + 0x10], eax
mov edi, dword [esp + 0x28]
mov ecx, ebx
call fcn.00448690
mov edx, dword [esp + 8]
cmp edx, dword [esp + 0x4c]
jl 0x442560
jmp 0x442887
mov ebx, dword [esp + 0x64]
jmp 0x44269c
xor edx, edx
cmp edx, dword [esp + 0x3c]
mov dword [esp + 4], ebx
jge 0x442bc1
mov esi, dword [esp + 0x54]
movsx ebx, byte [edi + esi]
mov ecx, 0xffffffd0
mov dword [esp + 0x54], esi
sub ecx, eax
add ebx, ecx
jne 0x442bca
mov ecx, dword [esp + 4]
inc edx
mov eax, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x10]
test eax, eax
jne 0x4428c8
cmp ebx, 1
je 0x442cd6
mov dword [esp + 8], edx
mov edx, 0xa
mul edx
mov dword [ecx + 0x14], eax
xor eax, eax
mov esi, edx
cmp ebx, 2
jl 0x44292b
lea edi, [ecx + 0x18]
mov dword [esp + 0x10], ebx
dec ebx
xor ecx, ecx
nop dword [eax]
mov eax, 0xa
mul dword [edi]
add eax, esi
mov esi, edx
mov dword [edi], eax
adc esi, ecx
add edi, 4
dec ebx
jne 0x4428f0
mov eax, ecx
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x10]
or eax, esi
je 0x442933
cmp ebx, dword [ecx + 8]
jge 0x44293c
mov eax, dword [esp + 0x54]
mov edi, ecx
jmp 0x442b99
mov edx, dword [esp + 0x14]
or eax, esi
jne 0x44291b
mov eax, dword [esp + 0x54]
jmp 0x442ba7
mov edi, dword [ecx + 4]
mov ecx, dword [0x54fd78]
cmp ecx, 1
ja 0x442993
mov dword [esp + 0x24], edi
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x442989
mov ecx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
mov ecx, 0x54fd7c
add esp, 0x10
jmp 0x44298f
mov ecx, dword [0x54fd78]
mov edi, dword [esp + 0x24]
lea edx, [edi + 1]
mov dword [esp + 0x24], edx
call fcn.00430c50
cmp edi, 6
mov dword [esp + 0x10], ebx
jg 0x4429c4
mov ecx, edi
mov edi, dword [edi*4 + 0x54fd5c]
test edi, edi
je 0x442ad4
mov eax, dword [edi]
mov dword [ecx*4 + 0x54fd5c], eax
jmp 0x4429f6
mov ecx, dword [esp + 0x24]
mov eax, 1
shl eax, cl
mov dword [esp + 0x4c], eax
lea eax, [eax*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.00429c60
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x4c]
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov ebx, dword [0x54fd78]
cmp ebx, 1
ja 0x442a42
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x442a3c
mov ecx, 0x54fd7c
mov ebx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x442a42
mov ebx, dword [0x54fd78]
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ebx, dword [esp + 4]
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
lea eax, [edi + 0xc]
mov edx, dword [ebx + 0x10]
lea ecx, [ebx + 0xc]
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call fcn.004d9f90
add esp, 0xc
cmp dword [ebx + 4], 8
jl 0x442a8a
push ebx
call fcn.00429ca0
add esp, 4
jmp 0x442b8d
mov ecx, dword [0x54fd78]
cmp ecx, 1
ja 0x442b22
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x442b1c
mov ecx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
mov ecx, 0x54fd7c
add esp, 0x10
jmp 0x442b22
mov ecx, dword [esp + 0x24]
mov edi, dword [0x54c060]
mov eax, 1
mov ebx, 0x54fd88
shl eax, cl
mov edx, edi
mov dword [esp + 0x4c], eax
lea eax, [eax*4 + 0x1b]
sub edx, ebx
mov ecx, eax
sar edx, 3
shr ecx, 3
add edx, ecx
cmp edx, 0x120
ja 0x4429da
lea eax, [edi + ecx*8]
mov dword [0x54c060], eax
jmp 0x4429e8
mov ecx, dword [0x54fd78]
call fcn.00430c50
mov eax, dword [ebx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [ebx], ecx
mov dword [eax*4 + 0x54fd58], ebx
mov ebx, dword [0x54fd78]
cmp ebx, 1
ja 0x442b86
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x442b80
mov ecx, 0x54fd7c
mov ebx, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x442b86
mov ebx, dword [0x54fd78]
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov dword [edi + ebx*4 + 0x14], esi
inc ebx
mov ecx, edi
mov dword [edi + 0x10], ebx
mov edi, dword [esp + 0x28]
inc eax
mov dword [esp + 4], ecx
mov esi, eax
call fcn.00448690
mov edx, dword [esp + 8]
cmp edx, dword [esp + 0x3c]
jl 0x442899
mov ebx, 0xffffffff
test eax, eax
jle 0x442be6
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x2c]
test eax, eax
jne 0x442ce5
jmp 0x442cf8
mov eax, ebx
jmp 0x442cd8
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x2c]
cmp dword [eax + 0x14], 0
jne 0x442c00
mov eax, dword [esp + 4]
xor ebx, ebx
cmp dword [eax + 0x10], 2
jl 0x442c05
mov ebx, 0xffffffff
mov eax, dword [esp + 4]
cmp dword [eax + 4], 8
jge 0x442cef
mov dword [esp + 4], eax
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x442c63
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x442c5d
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x442c63
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov edx, dword [esp + 4]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edx], ecx
mov dword [eax*4 + 0x54fd58], edx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x442ccd
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x442cc7
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x442ccd
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x442cf8
mov eax, ecx
xor ebx, ebx
cmp edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x2c]
setl bl
cmp dword [eax + 4], 8
jl 0x442c13
push eax
call fcn.00429ca0
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x442e4a
cmp dword [eax + 4], 8
jl 0x442d3f
push eax
call fcn.00429ca0
add esp, 4
cmp dword [esp + 0x50], 0
jne 0x442e55
test ebx, ebx
js 0x442d89
mov ebx, dword [esp + 0x38]
je 0x442da4
cmp dword [esp + 0x1c], 0
je 0x442f60
mov eax, dword [esp + 0xf4]
jmp 0x442eac
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x442dd9
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x442dd3
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x442dd9
cmp dword [esp + 0x1c], 0
mov ebx, dword [esp + 0x38]
jne 0x442f60
mov eax, dword [esp + 0xf4]
jmp 0x442f05
mov eax, dword [esp + 0xf4]
mov edx, eax
shr edx, 0x14
and edx, 0x7ff
sub edx, dword [esp + 0x48]
jle 0x442e7c
test byte [esp + 0xf0], 1
jne 0x442ea5
jmp 0x442f60
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edx], ecx
mov dword [eax*4 + 0x54fd58], edx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x442e43
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x442e3d
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x442e43
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp dword [esp + 0x50], 0
je 0x442d1e
test ebx, ebx
mov ebx, dword [esp + 0x38]
jg 0x442f60
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf0], 0
jmp 0x442f60
mov ecx, 1
sub ecx, edx
cmp ecx, 0x1f
jg 0x442e99
mov edx, dword [esp + 0xf0]
bt edx, ecx
jb 0x442ea5
jmp 0x442f60
add ecx, 0xffffffe0
bt eax, ecx
jae 0x442f60
cmp dword [esp + 0x1c], 0
je 0x442f05
mov ecx, eax
and ecx, 0x7ff00000
add ecx, 0xfcc00000
cmp dword [esp + 0x48], 0
movd xmm0, ecx
pshufd xmm0, xmm0, 0x51
je 0x442ef1
shr eax, 0x14
mov ecx, 0x6b
and eax, 0x7ff
sub ecx, eax
jle 0x442ef1
shl ecx, 0x14
add ecx, 0x3ff00000
movd xmm1, ecx
pshufd xmm1, xmm1, 0x51
mulsd xmm0, xmm1
addsd xmm0, qword [esp + 0xf0]
movsd qword [esp + 0xf0], xmm0
jmp 0x442f60
mov ecx, eax
and ecx, 0x7ff00000
add ecx, 0xfcc00000
cmp dword [esp + 0x48], 0
movd xmm0, ecx
pshufd xmm0, xmm0, 0x51
je 0x442f4a
shr eax, 0x14
mov ecx, 0x6b
and eax, 0x7ff
sub ecx, eax
jle 0x442f4a
shl ecx, 0x14
add ecx, 0x3ff00000
movd xmm1, ecx
pshufd xmm1, xmm1, 0x51
mulsd xmm0, xmm1
movsd xmm1, qword [esp + 0xf0]
subsd xmm1, xmm0
movsd qword [esp + 0xf0], xmm1
mov eax, 0x7ff00000
and eax, dword [esp + 0xf4]
cmp eax, 0x7ff00000
je 0x442ffe
test eax, eax
jne 0x442fa5
movsd xmm0, qword [esp + 0xf0]
xorpd xmm1, xmm1
mov dword [esp + 4], 0
ucomisd xmm0, xmm1
jne 0x442fa5
jp 0x442fa5
mov dword [esp + 0xf4], 0
jmp 0x443011
cmp dword [esp + 0x48], 0
je 0x44348b
movsd xmm0, qword [esp + 0xf0]
mov eax, 0xffffffff
mov ecx, 0x7fefffff
add eax, 1
adc ecx, 0
mulsd xmm0, qword [0x503418]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0x88], xmm0
and ecx, dword [esp + 0x8c]
and eax, dword [esp + 0x88]
or eax, ecx
jne 0x44348b
jmp 0x443480
mov dword [esp + 4], 0
mov dword [esp + 0xf4], 0x7ff00000
mov eax, dword [esp + 0x18]
cmp dword [esp + 4], 0
mov dword [esp + 0xf0], 0
je 0x443480
test eax, eax
je 0x443108
cmp dword [eax + 4], 8
jl 0x443047
push eax
call fcn.00429ca0
add esp, 4
jmp 0x443108
mov dword [esp + 0x18], eax
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x443097
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x443091
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x443097
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edx], ecx
mov dword [eax*4 + 0x54fd58], edx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x443101
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4430fb
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x443101
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4431ed
cmp dword [eax + 4], 8
jl 0x443130
push eax
call fcn.00429ca0
add esp, 4
test edi, edi
jne 0x4431f5
jmp 0x4432c2
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x44317c
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x443176
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x44317c
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edx], ecx
mov dword [eax*4 + 0x54fd58], edx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x4431e6
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4431e0
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x4431e6
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test edi, edi
je 0x4432c2
cmp dword [edi + 4], 8
jl 0x443209
push edi
call fcn.00429ca0
add esp, 4
jmp 0x4432c2
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x443255
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x44324f
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x443255
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edi], ecx
mov dword [eax*4 + 0x54fd58], edi
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x4432bb
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x4432b5
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x4432bb
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 4]
cmp dword [eax + 4], 8
jl 0x4432e6
push eax
call fcn.00429ca0
add esp, 4
mov edi, dword [esp + 0xc]
test edi, edi
jne 0x4433af
jmp 0x443480
mov esi, dword [0x54fd78]
mov edi, dword [esp + 0xc]
cmp esi, 1
ja 0x443336
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x443330
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x443336
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov edx, dword [esp + 4]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edx], ecx
mov dword [eax*4 + 0x54fd58], edx
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x4433a0
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x44339a
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x4433a0
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test edi, edi
je 0x443480
mov edi, dword [esp + 0xc]
cmp dword [edi + 4], 8
jl 0x4433c7
push edi
call fcn.00429ca0
add esp, 4
jmp 0x443480
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x443413
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x44340d
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x443413
mov esi, dword [0x54fd78]
mov ecx, esi
call fcn.00430c50
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x54fd58]
mov dword [edi], ecx
mov dword [eax*4 + 0x54fd58], edi
mov esi, dword [0x54fd78]
cmp esi, 1
ja 0x443479
push 0x54fd78
call fcn.00413d30
add esp, 4
test al, al
je 0x443473
mov ecx, 0x54fd7c
mov esi, 0x54fd7c
call fcn.00430c40
push 0x54fd78
push 0
push 0x54fd7c
push 0x54fd78
call fcn.00413df0
add esp, 0x10
jmp 0x443479
mov esi, dword [0x54fd78]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
call fcn.004e1f78
mov dword [eax], 0x22
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x40]
test ecx, ecx
jne 0x43f042
jmp 0x43f044
mov dl, 0x30
inc eax
xor esi, esi
mov dword [esp + 0x2c], 1
mov dword [esp + 0x28], 0
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
movzx ecx, dl
movzx edx, byte [ecx + 0x503628]
test edx, edx
je 0x44350e
and edx, 0xf
test esi, esi
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0xc]
mov ecx, 0
cmove ecx, ebx
cmovne esi, ebx
cmp dword [esp + 0x2c], 0
je 0x4434f5
shld esi, ecx, 4
shl ecx, 4
mov dword [esp + 0xc], esi
xor esi, esi
mov dword [esp + 0x28], 1
or ecx, edx
mov dword [esp + 4], ecx
jmp 0x44353a
cmp cl, 0x21
jae 0x443584
mov ebx, dword [esp + 0x2c]
test ebx, ebx
setne cl
cmp dword [esp + 0x28], 0
setne dl
test cl, dl
mov ecx, 0
cmovne ebx, ecx
mov ecx, 1
cmovne esi, ecx
mov dword [esp + 0x2c], ebx
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x4434c4
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 4]
mov ecx, dword [ebp + 0xc]
and edx, 0xfffff
mov eax, edx
or eax, esi
je 0x43f0a1
or edx, 0x7ff00000
mov eax, edi
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf0], esi
test ecx, ecx
jne 0x43f042
jmp 0x43f044
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 4]
cmp ecx, 0x29
je 0x4435ba
movsx ecx, byte [eax]
inc eax
test ecx, ecx
jne 0x443590
jmp 0x44354e
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], 0
cmp dword [esp + 0x3c], eax
jle 0x4418b2
jmp 0x44186f
mov edi, eax
jmp 0x44354e