Function at 0x437518
Capabilities:
Authenticate hmac
Encode data using xor
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5f8
push esi
push edi
push 0x36
mov dword [esp + 0x10c], edx
pop edx
mov dword [esp + 0x14c], ecx
xor ecx, ecx
push 3
mov dword [esp + 0x8c], 0x61
mov eax, ecx
mov dword [esp + 0x90], 0x38
mov dword [esp + 0x94], 0xffffff31
pop edi
add edx, dword [esp + eax*4 + 0x88]
inc eax
cmp eax, edi
jl 0x43755f
mov dword [esp + 0x1a8], edx
mov eax, ecx
mov edx, ecx
mov dword [esp + 0x88], 0x21
mov dword [esp + 0x8c], 0xb
mov dword [esp + 0x90], 0xffffffd4
sub edx, dword [esp + eax*4 + 0x88]
inc eax
cmp eax, edi
jl 0x437597
push 0x5b
mov dword [esp + 0x2c0], edx
mov eax, ecx
pop edx
mov dword [esp + 0x88], 0x11
mov dword [esp + 0x8c], 0x10
mov dword [esp + 0x90], 0xffffff85
add edx, dword [esp + eax*4 + 0x88]
inc eax
cmp eax, edi
jl 0x4375d0
mov dword [esp + 0xec], 0x30
xorps xmm1, xmm1
mov dword [esp + 0xf0], 0x31
xorps xmm2, xmm2
mov dword [esp + 0xf4], 0x40
mov eax, ecx
mov dword [esp + 0xf8], 0xffffff5f
movups xmm0, xmmword [esp + 0xec]
mov dword [esp + 0x15c], edx
mov edx, dword [0x44daf8]
psubd xmm1, xmm0
mov dword [esp + 0x88], 0x43
movaps xmm0, xmm1
mov dword [esp + 0x8c], 0x3e
psrldq xmm0, 8
add edx, 0x157fb016
paddd xmm1, xmm0
mov dword [esp + 0x90], 0xffffff1d
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
push 0x62
movd dword [esp + 0x2c4], xmm1
pop esi
add esi, dword [esp + eax*4 + 0x88]
inc eax
cmp eax, edi
jl 0x437674
push 0x52
pop eax
mov dword [esp + 0x2cc], esi
mov edi, eax
mov esi, 0x403240
mov dword [esp + 0x78], eax
mov dword [esp + 0x80], 9
lea eax, [edi - 0x30]
cmp ax, word [esp + 0x80]
ja 0x4376bc
add esi, 2
movzx eax, word [esi]
mov edi, eax
test ax, ax
jne 0x4376a0
jmp 0x4376c2
add edx, 0xd63ad9
add edx, 0x39b69f8b
mov dword [esp + 0x88], 8
mov esi, ecx
mov dword [esp + 0x8c], 0x55
mov dword [esp + 0x90], 0xffffffa3
mov eax, ecx
sub esi, dword [esp + eax*4 + 0x88]
inc eax
cmp eax, 3
jl 0x4376ed
mov dword [esp + 0x2e4], esi
lea edi, [esp + 0xec]
mov esi, 0x401aec
mov dword [esp + 0xa0], 0x55ae29b2
push 7
pop eax
add edx, 0x6dde0223
mov dword [esp + 0xe4], eax
movsd dword es:[edi], dword [esi]
mov byte [esp + 0xc6], al
mov eax, ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0xa4], 0x1be54f13
movsd dword es:[edi], dword [esi]
mov dword [esp + 0xa8], 0x3064257e
mov dword [esp + 0xac], 0xd38752ad
mov dword [esp + 0xb0], 0x3779f429
movsd dword es:[edi], dword [esi]
mov dword [esp + 0xb4], 0xcaf4048b
mov dword [esp + 0xb8], 0x3bc5bb6e
mov dword [esp + 0xbc], 0xf21002a0
movsd dword es:[edi], dword [esi]
mov dword [esp + 0xc0], 0xd630b6c8
mov word [esp + 0xc4], 0x8baa
mov dword [esp + 0xc7], 0xb809498
movsw word es:[edi], word [esi]
mov dword [esp + 0xcb], 0x37a859ac
mov dword [esp + 0xcf], 0xe6acb6b2
mov dword [esp + 0xd3], 0x41f3b634
movsb byte es:[edi], byte [esi]
mov dword [esp + 0xd7], 0xd7af274f
mov edi, ecx
mov dword [esp + 0xdb], 0x63c288a1
mov byte [esp + 0xdf], 0x6e
mov byte [esp + eax + 0x1b0], al
inc eax
cmp eax, 0x100
jb 0x4377ea
mov esi, ecx
mov eax, 0x403240
inc esi
mov dword [esp + 0x44], 0x403220
lea eax, [eax + 2]
cmp esi, 0x3d4
jl 0x43781b
cmp word [eax], cx
jne 0x437800
jmp 0x437836
mov eax, dword [esp + 0x44]
mov edx, eax
push eax
mov ecx, eax
call fcn.004372a9
mov edx, dword [esp + 0x78]
pop ecx
xor edx, 0xd9a3a35c
xor ecx, ecx
and edx, 0x3810210
mov dword [esp + 0x7c], 0x12
or edx, 0x8520021
mov esi, ecx
mov dword [esp + 0x74], edx
xor edx, edx
mov cl, byte [esp + esi + 0x1b0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x7c]
movzx ecx, cl
movzx eax, byte [esp + edx + 0xec]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b0]
mov byte [esp + esi + 0x1b0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1b0], al
cmp esi, 0x100
jb 0x437850
xor eax, eax
mov dword [esp + 0x40], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x40]
mov cl, byte [esp + edi + 0x1b0]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x40], eax
mov al, byte [esp + eax + 0x1b0]
mov byte [esp + edi + 0x1b0], al
mov eax, dword [esp + 0x40]
mov byte [esp + eax + 0x1b0], cl
movzx eax, byte [esp + edi + 0x1b0]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b0]
xor al, byte [esp + esi + 0xa0]
mov byte [esp + esi + 0x470], al
inc esi
cmp esi, 0x40
jb 0x4378a1
xor eax, eax
mov word [esp + 0x10], 0xd072
add dword [esp + 0x74], 0x1feed537
push 5
pop ecx
mov dword [esp + 0x84], ecx
mov byte [esp + 0x13], cl
mov ecx, eax
mov byte [esp + 0x4b0], al
mov byte [esp + 0x12], 0xf8
mov word [esp + 0x14], 0x24d1
mov dword [esp + 0x184], 0x7373656d
mov dword [esp + 0x188], 0x656761
mov dword [esp + 0x38], eax
mov byte [esp + ecx + 0x1b0], cl
inc ecx
cmp ecx, 0x100
jb 0x43794d
mov edi, eax
xor edx, edx
mov cl, byte [esp + edi + 0x1b0]
mov eax, edi
mov byte [esp + 0xf], cl
div dword [esp + 0xe4]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x184]
add eax, dword [esp + 0x38]
add ecx, eax
movzx ecx, cl
mov dword [esp + 0x38], ecx
mov al, byte [esp + ecx + 0x1b0]
mov byte [esp + edi + 0x1b0], al
inc edi
mov al, byte [esp + 0xf]
mov byte [esp + ecx + 0x1b0], al
cmp edi, 0x100
jb 0x43795f
xor eax, eax
mov dword [esp + 0xe4], 6
mov dword [esp + 0x40], eax
mov esi, eax
mov edi, eax
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [esp + 0x40]
push 6
mov cl, byte [esp + esi + 0x1b4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x44], eax
mov al, byte [esp + eax + 0x1b4]
mov byte [esp + esi + 0x1b4], al
mov eax, dword [esp + 0x44]
mov byte [esp + eax + 0x1b4], cl
movzx eax, byte [esp + esi + 0x1b4]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b4]
xor al, byte [esp + edi + 0x14]
mov byte [esp + edi + 0x328], al
inc edi
pop eax
cmp edi, eax
jb 0x4379c4
imul eax, dword [esp + 0x74], 0xe17facfb
push 5
mov dword [esp + 0xf0], 0x60
mov dword [esp + 0xf4], 0x41
mov dword [esp + 0xf8], 0x53
mov dword [esp + 0x3c], eax
xor eax, eax
mov byte [esp + 0x32e], al
mov edx, eax
mov dword [esp + 0xfc], 0x35
mov ecx, eax
mov dword [esp + 0x100], 0xfffffed7
pop esi
sub edx, dword [esp + ecx*4 + 0xec]
inc ecx
cmp ecx, esi
jl 0x437a74
mov dword [esp + 0xec], 0x32
movaps xmm1, xmm2
mov dword [esp + 0xf0], 0x4d
mov dword [esp + 0xf4], 0xd
mov dword [esp + 0xf8], 0xffffff84
movups xmm0, xmmword [esp + 0xec]
mov dword [esp + 0x2f8], edx
push 0x12
psubd xmm1, xmm0
mov dword [esp + 0x8c], 0x26
movaps xmm0, xmm1
mov dword [esp + 0x90], 0xf
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x94], 0xffffffcb
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
pop edx
add ecx, edx
mov edx, eax
mov dword [esp + 0x2ec], ecx
mov ecx, eax
sub edx, dword [esp + ecx*4 + 0x88]
inc ecx
cmp ecx, 3
jl 0x437b0f
mov esi, 0x401aec
mov dword [esp + 0x2e8], edx
lea edi, [esp + 0xec]
mov dword [esp + 0xa0], 0x55ae29b2
push 7
pop ecx
movsd dword es:[edi], dword [esi]
mov byte [esp + 0xc6], cl
mov ecx, eax
mov dword [esp + 0xa4], 0x1be54f13
mov dword [esp + 0xa8], 0x3064257e
movsd dword es:[edi], dword [esi]
mov dword [esp + 0xac], 0xd38752ad
mov dword [esp + 0xb0], 0x3779f429
mov dword [esp + 0xb4], 0xcaf4048b
movsd dword es:[edi], dword [esi]
mov dword [esp + 0xb8], 0x3bc5bb6e
mov dword [esp + 0xbc], 0xf21002a0
mov dword [esp + 0xc0], 0xd630b6c8
movsd dword es:[edi], dword [esi]
mov word [esp + 0xc4], 0x8baa
mov dword [esp + 0xc7], 0xb809498
mov dword [esp + 0xcb], 0x37a859ac
movsw word es:[edi], word [esi]
mov dword [esp + 0xcf], 0xe6acb6b2
mov dword [esp + 0xd3], 0x41f3b634
mov dword [esp + 0xd7], 0xd7af274f
movsb byte es:[edi], byte [esi]
mov dword [esp + 0xdb], 0x63c288a1
mov edi, eax
mov byte [esp + 0xdf], 0x6e
mov byte [esp + ecx + 0x1b0], cl
inc ecx
cmp ecx, 0x100
jb 0x437bfb
mov esi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x1b0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x7c]
movzx ecx, cl
movzx eax, byte [esp + edx + 0xec]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b0]
mov byte [esp + esi + 0x1b0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1b0], al
cmp esi, 0x100
jb 0x437c0d
xor eax, eax
mov dword [esp + 0x40], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x40]
mov cl, byte [esp + edi + 0x1b0]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x40], eax
mov al, byte [esp + eax + 0x1b0]
mov byte [esp + edi + 0x1b0], al
mov eax, dword [esp + 0x40]
mov byte [esp + eax + 0x1b0], cl
movzx eax, byte [esp + edi + 0x1b0]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b0]
xor al, byte [esp + esi + 0xa0]
mov byte [esp + esi + 0x4b8], al
inc esi
cmp esi, 0x40
jb 0x437c5e
mov esi, 0x402b6c
mov dword [esp + 0x10], 0xbc7571e5
lea edi, [esp + 0x18c]
mov word [esp + 0x14], 0xefdb
xor eax, eax
push 0x45
movsd dword es:[edi], dword [esi]
mov byte [esp + 0x4fc], al
pop edx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, 0x4031e0
mov esi, 0x1362
mov ecx, edi
add esi, edx
inc ecx
cmp esi, 0x1a65
ja 0x437d0b
movsx edx, byte [ecx]
test edx, edx
jne 0x437cf3
mov ecx, dword [esp + 0x38]
jmp 0x437d38
mov edx, dword [esp + 0x44]
mov ecx, edx
push edi
call fcn.004372a9
mov eax, dword [esp + 0x3c]
mov ecx, edi
or eax, 0xcdde28de
mov dword [0x44daf8], eax
call fcn.0043740d
pop ecx
mov ecx, dword [0x44daf8]
xorps xmm2, xmm2
xor eax, eax
or ecx, 0x974cf314
mov edi, eax
imul ecx, ecx, 0xe925eae1
mov dword [esp + 0x38], ecx
mov ecx, eax
mov byte [esp + ecx + 0x1b0], cl
inc ecx
cmp ecx, 0x100
jb 0x437d4c
mov esi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x1b0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0xe4]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x18c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b0]
mov byte [esp + esi + 0x1b0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1b0], al
cmp esi, 0x100
jb 0x437d5e
xor eax, eax
mov dword [esp + 0x34], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x34]
push 6
mov cl, byte [esp + edi + 0x1b4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x38], eax
mov al, byte [esp + eax + 0x1b4]
mov byte [esp + edi + 0x1b4], al
mov eax, dword [esp + 0x38]
mov byte [esp + eax + 0x1b4], cl
movzx eax, byte [esp + edi + 0x1b4]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b4]
xor al, byte [esp + esi + 0x14]
mov byte [esp + esi + 0x330], al
inc esi
pop eax
cmp esi, eax
jb 0x437db2
xor ecx, ecx
mov dword [esp + 0x10], 0x34
push 0x1d
mov byte [esp + 0x336], cl
mov eax, ecx
pop edx
mov dword [esp + 0x14], 0xffffffb1
add edx, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, 2
jl 0x437e2d
push 0x11
mov dword [esp + 0x304], edx
mov eax, ecx
pop edx
mov dword [esp + 0x10], 0x30
mov dword [esp + 0x14], 0xffffffbf
add edx, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, 2
jl 0x437e53
push 6
pop eax
mov dword [esp + 0x2fc], edx
mov edx, eax
mov dword [esp + 0x10], 0x28
mov eax, ecx
mov dword [esp + 0x14], 4
mov dword [esp + 0x18], 0xfffffffa
add edx, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, 3
jl 0x437e83
mov esi, dword [esp + 0x38]
mov edi, ecx
push 0xc
pop eax
mov dword [esp + 0x144], eax
and esi, 0x7b80d913
mov byte [esp + 0x4d], al
push 0x12
pop eax
mov byte [esp + 0x6c], al
push 0xe
pop eax
mov dword [esp + 0x104], eax
mov byte [esp + 0x6e], al
mov eax, dword [0x401638]
mov dword [esp + 0x10], eax
mov ax, word [0x40163c]
mov dword [esp + 0x304], edx
mov dword [esp + 0x48], 0x6dd547a8
mov byte [esp + 0x4c], 0xfb
mov dword [esp + 0x4e], 0xf6fa944
mov dword [esp + 0x52], 0xe4abf49b
mov dword [esp + 0x56], 0xa0731b60
mov dword [esp + 0x5a], 0x723a551a
mov dword [esp + 0x5e], 0x822c75ac
mov dword [esp + 0x62], 0x40ab1f1a
mov dword [esp + 0x66], 0x70841a80
mov word [esp + 0x6a], 0x87e2
mov byte [esp + 0x6d], 0x83
mov dword [esp + 0x6f], 0xe84dd7f5
mov byte [esp + 0x73], 0x43
mov word [esp + 0x14], ax
mov byte [esp + ecx + 0x1b0], cl
inc ecx
cmp ecx, 0x100
jb 0x437f35
push 0x45
mov edx, 0xa9e
mov eax, 0x4031e0
pop ecx
add edx, ecx
inc eax
cmp edx, 0x25bc
ja 0x437f66
movsx ecx, byte [eax]
test ecx, ecx
jne 0x437f52
jmp 0x437f7e
mov eax, dword [esp + 0x44]
mov ecx, 0x4031e0
push eax
mov edx, eax
call fcn.004372a9
pop ecx
imul esi, esi, 0xffa32869
lea eax, [esi + 0x37e95ce8]
mov edx, 0x4031e0
and eax, 0x617e1ed4
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x44]
mov ecx, eax
push eax
call fcn.004372a9
pop ecx
xor esi, esi
xor edx, edx
mov cl, byte [esp + esi + 0x1b0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x84]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x10]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b0]
mov byte [esp + esi + 0x1b0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1b0], al
cmp esi, 0x100
jb 0x437fa1
xor eax, eax
mov dword [esp + 0x34], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x34]
mov cl, byte [esp + edi + 0x1b0]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x34], eax
mov al, byte [esp + eax + 0x1b0]
mov byte [esp + edi + 0x1b0], al
mov eax, dword [esp + 0x34]
mov byte [esp + eax + 0x1b0], cl
movzx eax, byte [esp + edi + 0x1b0]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b0]
xor al, byte [esp + esi + 0x48]
mov byte [esp + esi + 0x440], al
inc esi
cmp esi, 0x2c
jb 0x437ff2
mov esi, 0x4028d4
mov dword [esp + 0x10], 0xa28d941b
lea edi, [esp + 0x18c]
mov word [esp + 0x14], 0x2879
xor eax, eax
mov byte [esp + 0x46c], al
mov ecx, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, eax
mov byte [esp + ecx + 0x1b0], cl
inc ecx
cmp ecx, 0x100
jb 0x43807a
mov esi, eax
mov dword [esp + 0x38], 0xa
xor edx, edx
mov cl, byte [esp + esi + 0x1b0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x38]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x18c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b0]
mov byte [esp + esi + 0x1b0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1b0], al
cmp esi, 0x100
jb 0x438094
mov esi, dword [esp + 0x30]
xor esi, 0xc87e8b51
xor eax, eax
mov dword [esp + 0x30], esi
mov edi, eax
mov dword [0x44daf8], esi
mov esi, eax
mov dword [esp + 0x34], eax
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [esp + 0x34]
push 6
mov cl, byte [esp + esi + 0x1b4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x38], eax
mov al, byte [esp + eax + 0x1b4]
mov byte [esp + esi + 0x1b4], al
mov eax, dword [esp + 0x38]
mov byte [esp + eax + 0x1b4], cl
movzx eax, byte [esp + esi + 0x1b4]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b4]
xor al, byte [esp + edi + 0x14]
mov byte [esp + edi + 0x338], al
inc edi
pop eax
cmp edi, eax
jb 0x4380f9
mov esi, dword [esp + 0x30]
movaps xmm1, xmm2
mov dword [esp + 0x1c], 0x1b
xor eax, eax
mov dword [esp + 0x20], 0x17
mov edi, eax
mov dword [esp + 0x24], 0x5a
mov dword [esp + 0x28], 0xffffff74
movups xmm0, xmmword [esp + 0x1c]
mov byte [esp + 0x33a], al
mov dword [esp + 0x7c], 0xcfff3
psubd xmm1, xmm0
mov dword [esp + 0x10], 0x14
movaps xmm0, xmm1
mov dword [esp + 0x14], 0x3c
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x18], 0xbffa4
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [esp + 0x140], xmm1
inc eax
cmp eax, 0x45
jl 0x4381fb
cmp byte [eax + 0x403220], 0
jne 0x4381d2
cmp eax, 0x1412
jle 0x438213
push ecx
mov ecx, 0x4031e0
call fcn.0043740d
mov esi, dword [0x44daf8]
jmp 0x438212
push ecx
mov ecx, 0x403220
call fcn.0043740d
mov esi, dword [0x44daf8]
xor esi, 0x15a80ef3
pop ecx
lea eax, [esi + 0x46c7f073]
mov edx, 0x4031e0
imul esi, eax, 0x85ea1cbe
mov eax, dword [esp + 0x44]
mov ecx, eax
push eax
mov dword [0x44daf8], esi
call fcn.004372a9
pop ecx
mov ecx, dword [esp + 0x7c]
sub ecx, dword [esp + edi*4 + 0x10]
inc edi
mov dword [esp + 0x7c], ecx
push 0
pop eax
cmp edi, 3
jl 0x4381d2
push 9
pop ecx
push 5
mov dword [esp + 0x2c], ecx
mov edx, eax
mov dword [esp + 0x20], 0x20
mov ecx, eax
mov dword [esp + 0x24], 0x5f
mov dword [esp + 0x28], 0x64
mov dword [esp + 0x30], 0xffffff14
pop edi
sub edx, dword [esp + ecx*4 + 0x1c]
inc ecx
cmp ecx, edi
jl 0x43827a
push 0x5e
mov dword [esp + 0x16c], edx
mov ecx, eax
pop edx
mov dword [esp + 0x10], 0x3b
mov dword [esp + 0x14], 0x43
mov dword [esp + 0x18], 0xffffff24
add edx, dword [esp + ecx*4 + 0x10]
inc ecx
cmp ecx, 3
jl 0x4382a7
mov dword [esp + 0x16c], edx
mov edi, eax
mov dword [esp + 0xe4], 0x2f
inc edi
cmp edi, 0x1da9
jl 0x4382d8
cmp byte [edi + 0x4031e0], al
jne 0x4382c5
jmp 0x4382fc
mov eax, 0x4031e0
push eax
mov edx, eax
mov ecx, eax
call fcn.004372a9
sub esi, 0x96e2509
mov dword [0x44daf8], esi
pop ecx
cmp edi, 0x1d38
jle 0x438322
push ecx
mov ecx, 0x4031e0
call fcn.0043740d
pop ecx
or dword [0x44daf8], 0xbe03032b
call dword [sym.imp.USER32.dll_GetMessageTime]
mov esi, eax
or esi, 0x24cb962f
jmp 0x438328
xor esi, 0x4322bc79
mov edi, dword [esp + 0x44]
mov eax, 0x4031e0
and esi, 0x8396cfb4
mov edx, eax
push edi
mov ecx, eax
mov dword [0x44daf8], esi
call fcn.004372a9
mov edx, dword [esp + 0xe8]
xor eax, eax
pop ecx
mov dword [esp + 0x10], 0x55
mov ecx, eax
mov dword [esp + 0x14], 0xff7c
add edx, dword [esp + ecx*4 + 0x10]
inc ecx
cmp ecx, 2
jl 0x438363
mov dword [esp + 0xe4], edx
mov dword [esp + 0x1c], 0x4d
mov dword [esp + 0x20], 0x15
mov dword [esp + 0x24], 0xb
mov dword [esp + 0x28], 0xffffff2f
inc eax
cmp eax, 0x1741
jg 0x4383a7
cmp byte [eax + 0x403220], 0
jne 0x438394
jmp 0x4383bc
push ecx
mov ecx, edi
call fcn.0043740d
mov esi, dword [0x44daf8]
pop ecx
xor esi, 0x1fc1777e
lea eax, [esi + 0x4c47]
or eax, 0xfe816b7b
push ecx
mov ecx, edi
mov dword [0x44daf8], eax
call fcn.0043740d
movups xmm1, xmmword [esp + 0x20]
pop ecx
push 0x14
movaps xmm0, xmm1
mov dword [esp + 0x28], 0x63
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x2c], 0xffffff7b
movups xmm0, xmm1
mov dword [esp + 0x14], 4
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x18], 0x2d
movd eax, xmm1
pop ecx
push 6
add eax, 0x64
mov dword [esp + 0x20], ecx
mov dword [esp + 0x174], eax
pop eax
mov dword [esp + 0x20], eax
movups xmm1, xmmword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], 0x21
movaps xmm0, xmm1
mov dword [esp + 0x20], 0x28
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x28], 0xffffffa3
movups xmm0, xmm1
mov dword [esp + 0x18], 0xffffff97
psrldq xmm0, 4
paddd xmm1, xmm0
movups xmm0, xmmword [esp + 0x1c]
mov dword [esp + 0x1c], 0x20
movd eax, xmm1
xorps xmm1, xmm1
psubd xmm1, xmm0
mov dword [esp + 0x20], 0x54
movaps xmm0, xmm1
mov dword [esp + 0x24], 0x26
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x28], 0x17ff66
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movups xmm0, xmmword [esp + 0x1c]
push 9
movd dword [esp + 0x314], xmm1
xorps xmm1, xmm1
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
pop edx
add eax, edx
movups xmm0, xmm1
psrldq xmm0, 4
mov dword [esp + 0x1a0], eax
paddd xmm1, xmm0
movd eax, xmm1
push 0x38
pop edx
add eax, 0x1a0000
mov dword [esp + 0x164], eax
xor eax, eax
push 3
mov ecx, eax
pop edi
add edx, dword [esp + ecx*4 + 0x10]
inc ecx
cmp ecx, edi
jl 0x43850a
push 0x54
mov dword [esp + 0x19c], edx
mov ecx, eax
pop edx
mov dword [esp + 0x10], 0x27
mov dword [esp + 0x14], 0x18
mov dword [esp + 0x18], 0xffffff6d
add edx, dword [esp + ecx*4 + 0x10]
inc ecx
cmp ecx, edi
jl 0x438537
mov dword [esp + 0x174], edx
mov ecx, eax
mov dword [esp + 0x10], 0x17
mov dword [esp + 0x14], 0x14
mov dword [esp + 0x18], 0xffffffd5
sub ecx, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, edi
jl 0x438561
mov dword [esp + 0x138], ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [esp + 0x10], 0x14
or ecx, 0x85647294
mov dword [esp + 0x14], 0x13
xor edx, edx
mov dword [esp + 0x30], ecx
mov esi, 0x240000
mov dword [esp + 0x18], 0x1fffd9
mov eax, edx
sub esi, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, edi
jl 0x4385a4
push 0x1c
pop edi
mov dword [esp + 0x178], esi
mov eax, edx
mov esi, edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 0x1b
mov dword [esp + 0x24], 0x3f
mov dword [esp + 0x28], 0x56
mov dword [esp + 0x2c], 0xffffff34
sub esi, dword [esp + eax*4 + 0x1c]
inc eax
cmp eax, 5
jl 0x4385df
push 0x21
mov dword [esp + 0x140], esi
mov eax, edx
pop esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], 0xffffffc3
add esi, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, 2
jl 0x438601
push 0x18
mov dword [esp + 0x310], esi
mov eax, edx
pop esi
mov dword [esp + 0x10], 0x59
mov dword [esp + 0x14], 0xffffff8f
add esi, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, 2
jl 0x438627
push 0x52
mov dword [esp + 0x30c], esi
mov esi, 0x403240
mov dword [esp + 0x20], 0x24
mov dword [esp + 0x24], 0x5e
mov dword [esp + 0x28], 0x28
mov dword [esp + 0x2c], 0xffffff1a
pop edi
lea eax, [edi - 0x30]
cmp ax, word [esp + 0x80]
ja 0x43867c
add esi, 2
movzx eax, word [esi]
mov edi, eax
test ax, ax
jne 0x438660
jmp 0x438686
or ecx, 0xae8fca99
mov dword [esp + 0x30], ecx
movups xmm1, xmmword [esp + 0x1c]
mov dword [esp + 0x1c], 0x22
lea edi, [esp + 0x3f0]
mov dword [esp + 0x20], 0x24
mov esi, 0x403170
movaps xmm0, xmm1
mov dword [esp + 0x24], 0x3b
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x28], 0xffffff60
movups xmm0, xmm1
mov dword [esp + 0x48], 0xdf272c03
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x4c], 0x85160253
movd eax, xmm1
movups xmm1, xmmword [esp + 0x1c]
push 7
add eax, 0x3d
mov dword [esp + 0x20], 0x49
movaps xmm0, xmm1
mov dword [esp + 0x9c], eax
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x28], 0x40
movups xmm0, xmm1
mov dword [esp + 0x2c], 0xffffff21
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x54], 0xa189b855
movd eax, xmm1
mov dword [esp + 0x58], 0x55853620
mov dword [esp + 0x5c], 0x295fff58
add eax, 0x20
mov word [esp + 0x61], 0x29b7
mov dword [esp + 0x318], eax
pop eax
mov dword [esp + 0x20], eax
movups xmm1, xmmword [esp + 0x1c]
push 5
mov byte [esp + 0x63], 0x4f
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x4f
mov dword [esp + 0x31c], eax
pop eax
mov byte [esp + 0x5c], al
push 0x12
pop eax
mov ecx, eax
mov eax, edx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [esp + 0x30]
xor esi, 0xf0fccdff
and esi, 0x4f533209
sub esi, 0x4ee81e57
mov dword [esp + 0x30], esi
mov byte [esp + eax + 0x1b0], al
inc eax
cmp eax, 0x100
jb 0x4387b2
mov edi, edx
mov esi, edx
xor edx, edx
mov cl, byte [esp + edi + 0x1b0]
mov eax, edi
mov byte [esp + 0xf], cl
div dword [esp + 0x1c]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x3f0]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [esp + esi + 0x1b0]
mov byte [esp + edi + 0x1b0], al
inc edi
mov al, byte [esp + 0xf]
mov byte [esp + esi + 0x1b0], al
cmp edi, 0x100
jb 0x4387c5
mov esi, dword [esp + 0x30]
xor eax, eax
push 0x52
mov dword [esp + 0x40], eax
mov ecx, 0x403240
mov dword [esp + 0x38], eax
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x43883c
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x438822
jmp 0x438842
xor esi, 0x1df66677
mov eax, 0x4031e0
or esi, 0x50bcdc86
push eax
mov edx, eax
mov dword [0x44daf8], esi
mov ecx, 0x403220
call fcn.004372a9
xor edx, edx
pop ecx
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x34]
inc eax
movzx eax, al
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x34]
mov cl, byte [esp + eax + 0x1b0]
movzx eax, cl
mov dword [esp + 0x100], eax
add eax, dword [esp + 0x3c]
movzx eax, al
mov dword [esp + 0x3c], eax
mov al, byte [esp + eax + 0x1b0]
mov byte [esp + edi + 0x1b0], al
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
mov byte [esp + eax + 0x1b0], cl
mov eax, edx
inc eax
cmp eax, 0x13d9
je 0x4388c5
cmp byte [eax + 0x4031e0], 0
jne 0x4388b2
jmp 0x4388df
push ecx
mov ecx, 0x4031e0
call fcn.0043740d
mov esi, dword [0x44daf8]
sub esi, 0x1a4f1c50
xor edx, edx
pop ecx
mov eax, dword [esp + 0x34]
add esi, 0x86b83dea
xor esi, 0xd0beffa
mov dword [0x44daf8], esi
movzx eax, byte [esp + eax + 0x1b0]
add eax, dword [esp + 0x100]
movzx eax, al
mov al, byte [esp + eax + 0x1b0]
xor al, byte [esp + edi + 0x48]
mov byte [esp + edi + 0x3b8], al
inc edi
mov dword [esp + 0x30], edi
cmp edi, 0x18
jb 0x438867
mov dword [esp + 0x30], esi
lea edi, [esp + 0x1c]
mov esi, 0x4031bc
mov byte [esp + 0x3d0], dl
push 0x45
mov dword [esp + 0x14], 0xdc4177c3
mov edx, 0xe20
mov word [esp + 0x18], 0xd08
movsd dword es:[edi], dword [esi]
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x4031e0
mov eax, esi
add edx, ecx
inc eax
cmp edx, 0x1b81
ja 0x438977
movsx ecx, byte [eax]
test ecx, ecx
jne 0x43895f
mov ecx, dword [esp + 0x30]
jmp 0x438981
mov ecx, dword [esp + 0x30]
add ecx, 0x4a0483b9
and ecx, 0xfeadf95a
sub ecx, 0x34fe0b19
mov dword [0x44daf8], ecx
push ecx
mov ecx, esi
call fcn.0043740d
xor eax, eax
pop ecx
mov edi, eax
mov ecx, eax
mov byte [esp + ecx + 0x1b0], cl
inc ecx
cmp ecx, 0x100
jb 0x4389a2
mov esi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x1b0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x104]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x1c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b0]
mov byte [esp + esi + 0x1b0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1b0], al
cmp esi, 0x100
jb 0x4389b4
mov esi, dword [0x44daf8]
xor eax, eax
add esi, 0x7dea2fd2
mov dword [esp + 0x3c], eax
mov dword [esp + 0x100], esi
mov edi, eax
mov esi, eax
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [esp + 0x3c]
push 6
mov cl, byte [esp + esi + 0x1b4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x40], eax
mov al, byte [esp + eax + 0x1b4]
mov byte [esp + esi + 0x1b4], al
mov eax, dword [esp + 0x40]
mov byte [esp + eax + 0x1b4], cl
movzx eax, byte [esp + esi + 0x1b4]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b4]
xor al, byte [esp + edi + 0x14]
mov byte [esp + edi + 0x340], al
inc edi
pop eax
cmp edi, eax
jb 0x438a18
mov esi, dword [esp + 0x100]
xor eax, eax
mov ecx, eax
mov edx, 0x403240
inc ecx
lea edx, [edx + 2]
cmp ecx, 0xa58
jl 0x438aa6
cmp word [edx], ax
jne 0x438a85
cmp ecx, 0x26e1
jle 0x438abe
lea eax, [esi + 0x1f5efa2b]
jmp 0x438ac4
mov eax, dword [esp + 0x44]
mov edx, 0x4031e0
push eax
mov ecx, eax
call fcn.004372a9
pop ecx
or esi, 0x454ad424
lea eax, [esi + 0x49ea26c8]
and eax, 0x61ddf858
push ecx
mov ecx, 0x4031e0
mov dword [0x44daf8], eax
call fcn.0043740d
pop ecx
xor ecx, ecx
mov dword [esp + 0x1c], 0x44
push 5
mov byte [esp + 0x346], cl
mov edx, ecx
mov dword [esp + 0x24], 0x2b
mov eax, ecx
mov dword [esp + 0x28], 0x40
mov dword [esp + 0x2c], 0x64
mov dword [esp + 0x30], 0xfffffeed
pop esi
sub edx, dword [esp + eax*4 + 0x1c]
inc eax
cmp eax, esi
jl 0x438b12
push 0x16
mov dword [esp + 0x14c], edx
mov eax, ecx
pop edx
push 3
mov dword [esp + 0x14], 8
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], 0xffffffe1
pop edi
add edx, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, edi
jl 0x438b42
push 0x3c
pop esi
mov dword [esp + 0x2b8], edx
mov eax, ecx
mov edx, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 0x26
mov dword [esp + 0x24], 0x3e
mov dword [esp + 0x28], 0x3b
mov dword [esp + 0x2c], 0xffffff25
sub edx, dword [esp + eax*4 + 0x1c]
inc eax
cmp eax, 5
jl 0x438b7d
mov dword [esp + 0x1c], 0x2d
xorps xmm1, xmm1
mov dword [esp + 0x20], 0x1a
xorps xmm2, xmm2
mov dword [esp + 0x24], 0x3d
mov dword [esp + 0x28], 0xffffff85
movups xmm0, xmmword [esp + 0x1c]
push 0xa
mov dword [esp + 0x2b8], edx
psubd xmm1, xmm0
mov dword [esp + 0x14], 0x51
movaps xmm0, xmm1
mov dword [esp + 0x18], 0x56
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x1c], 0xffffff85
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop edx
push 0x30
add eax, edx
mov dword [esp + 0x2b4], eax
mov eax, ecx
pop edx
sub edx, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, edi
jl 0x438c02
push 0xd
mov dword [esp + 0x324], edx
mov eax, ecx
pop edx
mov dword [esp + 0x10], 0x4c
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 0xffffff73
add edx, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, edi
jl 0x438c2b
push 0xd
pop eax
push 5
mov dword [esp + 0x320], edx
mov edx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov eax, ecx
mov dword [esp + 0x24], 0x15
mov dword [esp + 0x2c], 0x55
mov dword [esp + 0x30], 0xffffff7c
pop esi
sub edx, dword [esp + eax*4 + 0x1c]
inc eax
cmp eax, esi
jl 0x438c65
mov dword [esp + 0x100], edx
mov esi, ecx
mov edx, dword [0x44daf8]
mov eax, ecx
mov dword [esp + 0x10], 0x48
mov dword [esp + 0x14], 0x52
mov dword [esp + 0x18], 0xffffff66
sub esi, dword [esp + eax*4 + 0x10]
xor edx, 0xe4d7f8e4
inc eax
cmp eax, edi
jl 0x438c97
push 0xc
pop eax
mov byte [esp + 0x60], al
mov edi, ecx
push 0xa
pop eax
mov byte [esp + 0x72], al
mov eax, dword [0x4031cc]
mov dword [esp + 0x10], eax
mov ax, word [0x4031d0]
mov word [esp + 0x14], ax
mov eax, ecx
mov dword [esp + 0x104], esi
mov dword [esp + 0x30], edx
mov dword [esp + 0x48], 0x5e0dee4b
mov dword [esp + 0x4c], 0x2aa16f9a
mov dword [esp + 0x50], 0x26a2f5e4
mov dword [esp + 0x54], 0x520b0d17
mov dword [esp + 0x58], 0xbdcfb41e
mov dword [esp + 0x5c], 0xbb42be38
mov dword [esp + 0x61], 0x3f361ecb
mov dword [esp + 0x65], 0x7e984a9f
mov dword [esp + 0x69], 0x9f1a8a33
mov dword [esp + 0x6d], 0xec213df9
mov byte [esp + 0x71], 0x73
mov byte [esp + 0x73], 0x87
mov byte [esp + eax + 0x1b0], al
inc eax
cmp eax, 0x100
jb 0x438d31
mov esi, ecx
xor edx, edx
mov cl, byte [esp + esi + 0x1b0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x84]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x10]
add eax, edi
add ecx, eax
xor eax, eax
movzx edi, cl
inc eax
cmp eax, 0xc46
jl 0x438d80
cmp byte [eax + 0x403220], 0
jne 0x438d69
mov eax, dword [esp + 0x30]
jmp 0x438d89
mov eax, dword [esp + 0x30]
add eax, 0x669d1a25
mov edx, dword [esp + 0x44]
or eax, 0x7ffff6be
push 0x4031e0
mov ecx, edx
mov dword [esp + 0x34], eax
call fcn.004372a9
mov al, byte [esp + edi + 0x1b4]
mov byte [esp + esi + 0x1b4], al
inc esi
mov al, byte [esp + 0x13]
mov byte [esp + edi + 0x1b4], al
pop ecx
cmp esi, 0x100
jb 0x438d42
xor eax, eax
mov dword [esp + 0x3c], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x3c]
mov cl, byte [esp + edi + 0x1b0]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x3c], eax
mov al, byte [esp + eax + 0x1b0]
mov byte [esp + edi + 0x1b0], al
mov eax, dword [esp + 0x3c]
mov byte [esp + eax + 0x1b0], cl
movzx eax, byte [esp + edi + 0x1b0]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b0]
xor al, byte [esp + esi + 0x48]
mov byte [esp + esi + 0xa0], al
inc esi
cmp esi, 0x2c
jb 0x438dd3
mov esi, 0x401e68
mov dword [esp + 0x10], 0x1d702e92
lea edi, [esp + 0x18c]
mov word [esp + 0x14], 0x3a
xor eax, eax
xor dword [esp + 0x30], 0xd600262f
mov byte [esp + 0xcc], al
mov ecx, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, eax
mov byte [esp + ecx + 0x1b0], cl
inc ecx
cmp ecx, 0x100
jb 0x438e63
mov esi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x1b0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x38]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x18c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b0]
mov byte [esp + esi + 0x1b0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1b0], al
cmp esi, 0x100
jb 0x438e75
xor eax, eax
mov dword [esp + 0x34], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x34]
push 6
mov cl, byte [esp + edi + 0x1b4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x38], eax
imul eax, dword [esp + 0x34], 0x5b4c0b32
sub eax, 0x19f1db8b
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
mov al, byte [esp + eax + 0x1b4]
mov byte [esp + edi + 0x1b4], al
mov eax, dword [esp + 0x38]
mov byte [esp + eax + 0x1b4], cl
movzx eax, byte [esp + edi + 0x1b4]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b4]
xor al, byte [esp + esi + 0x14]
mov byte [esp + esi + 0x188], al
inc esi
pop eax
cmp esi, eax
jb 0x438ec6
mov dword [esp + 0x1c], 0x2b
movaps xmm1, xmm2
mov dword [esp + 0x20], 8
xor ecx, ecx
mov dword [esp + 0x24], 0x5d
mov edi, ecx
mov dword [esp + 0x28], 0xffffff31
mov edx, 0x403240
movups xmm0, xmmword [esp + 0x1c]
mov dword [esp + 0x1c], 0x19
mov dword [esp + 0x20], 0x35
paddd xmm1, xmm0
mov dword [esp + 0x24], 0x33
movaps xmm0, xmm1
mov dword [esp + 0x28], 0xffffff7f
psrldq xmm0, 8
paddd xmm1, xmm0
mov byte [esp + 0x18a], cl
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movups xmm0, xmmword [esp + 0x1c]
push 0x52
movd eax, xmm1
movaps xmm1, xmm2
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
add eax, 0x40
paddd xmm1, xmm0
mov dword [esp + 0x38], eax
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [esp + 0x2c8], xmm1
pop esi
lea eax, [esi - 0x30]
cmp ax, word [esp + 0x80]
ja 0x439007
add edx, 2
movzx eax, word [edx]
mov esi, eax
test ax, ax
jne 0x438fe7
mov esi, dword [esp + 0x30]
jmp 0x43900f
imul esi, dword [esp + 0x30], 0x5cf4e63d
add esi, 0x56891ba2
mov dword [esp + 0x10], 0x4c
mov dword [esp + 0x14], 0x3f
mov eax, ecx
mov dword [esp + 0x18], 0xffffff75
sub edi, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, 3
jl 0x43902f
push 5
mov dword [esp + 0x2cc], edi
mov edx, 0x32cb5
mov dword [esp + 0x20], 0x53
mov eax, ecx
mov dword [esp + 0x24], 0x32
mov dword [esp + 0x28], 0x54
mov dword [esp + 0x2c], 0x5c
mov dword [esp + 0x30], 0x2d133
pop edi
sub edx, dword [esp + eax*4 + 0x1c]
inc eax
cmp eax, edi
jl 0x439072
xor edi, edi
mov dword [esp + 0x150], edx
inc edi
mov dword [esp + 0x10], 0x3d
mov edx, edi
mov dword [esp + 0x14], 0xffffffc2
mov eax, ecx
add edx, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, 2
jl 0x439099
push 0x5b
mov dword [esp + 0x20], edi
mov eax, ecx
pop edi
push 5
mov dword [esp + 0x2d4], edx
mov dword [esp + 0x24], 0x60
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], 0x28
mov dword [esp + 0x30], 0xffffff1c
pop edx
sub eax, dword [esp + ecx*4 + 0x1c]
inc ecx
cmp ecx, edx
jl 0x4390d2
push 0x77
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x48]
mov ecx, edi
pop edx
mov dword [esp + 0x2e0], eax
mov al, dl
mov dword [esp + 0x1c], 0x21
mov dword [esp + 0x20], 0x2c
mov dword [esp + 0x28], 0x8f58
sub al, 0x30
cmp al, 9
ja 0x439118
inc ecx
mov al, byte [ecx]
test al, al
jne 0x439109
jmp 0x43911e
sub esi, 0x5a33351c
movups xmm0, xmmword [esp + 0x1c]
sub esi, 0x571cb517
mov ecx, edi
movaps xmm1, xmm2
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push 9
add eax, 0xa000
mov dword [esp + 0x2e0], eax
mov al, dl
pop edx
sub al, 0x30
cmp al, dl
ja 0x43916e
inc ecx
mov al, byte [ecx]
test al, al
jne 0x43915f
jmp 0x439174
add esi, 0x24efb68e
mov eax, 0x4031e0
push edi
mov edx, eax
mov ecx, eax
call fcn.004372a9
mov dword [esp + 0x20], 0x60
and esi, 0xd2837055
mov dword [esp + 0x24], 0x3f
mov dword [esp + 0x28], 0x5d
mov dword [esp + 0x2c], 0x1ec4
movups xmm1, xmmword [esp + 0x20]
pop ecx
imul edx, esi, 0x9df1ba7d
mov esi, 0x3c0
paddd xmm1, xmm2
mov dword [esp + 0x10], 0x34
movaps xmm0, xmm1
mov dword [esp + 0x14], 0x2b
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x18], 0x321
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x40
mov dword [esp + 0x2d8], eax
xor eax, eax
mov ecx, eax
sub esi, dword [esp + ecx*4 + 0x10]
inc ecx
cmp ecx, 3
jl 0x439200
push 0x4e
pop edi
mov dword [esp + 0x2d4], esi
mov ecx, eax
mov esi, eax
mov dword [esp + 0x1c], 2
mov dword [esp + 0x20], 0x5b
mov dword [esp + 0x24], 0x5a
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], 0xfffffefb
sub esi, dword [esp + ecx*4 + 0x1c]
inc ecx
cmp ecx, 5
jl 0x43923c
push 0x5e
mov dword [esp + 0x158], esi
or edx, 0x2c0d5a31
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0x27
mov dword [esp + 0x1c], 0xffffff2d
pop ecx
add ecx, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, 3
jl 0x43926a
push 6
pop eax
mov dword [esp + 0x160], ecx
mov ecx, 0x403240
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0x4c
mov dword [esp + 0x18], 0xffffff80
mov eax, dword [esp + 0x78]
add eax, 0xffffffd0
cmp ax, word [esp + 0x80]
ja 0x4392bb
add ecx, 2
movzx eax, word [ecx]
mov esi, eax
mov dword [esp + 0x78], esi
test ax, ax
jne 0x439297
jmp 0x4392c1
or edx, 0x864f31b9
xor edx, 0x7737667d
push ecx
mov ecx, 0x4031e0
mov dword [0x44daf8], edx
call fcn.0043740d
pop ecx
xor ecx, ecx
push 0x2e
mov eax, ecx
pop edx
add edx, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, 3
jl 0x4392e0
push 0x14
mov dword [esp + 0xec], edx
mov eax, ecx
pop edx
mov dword [esp + 0x10], 0x4f
mov dword [esp + 0x14], 0xffffff9d
add edx, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, 2
jl 0x439306
mov eax, dword [0x4026dc]
mov edi, ecx
mov dword [esp + 0x10], eax
mov ax, word [0x4026e0]
mov word [esp + 0x14], ax
mov eax, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], 0x91f24d51
mov dword [esp + 0x4c], 0xbbfe6e87
mov dword [esp + 0x50], 0xfefcde7b
mov dword [esp + 0x54], 0xe088de3e
mov dword [esp + 0x58], 0xf7c06d9f
mov dword [esp + 0x5c], 0x45d61e2f
mov byte [esp + eax + 0x1b0], al
inc eax
cmp eax, 0x100
jb 0x43935c
mov eax, dword [0x44daf8]
mov esi, ecx
sub eax, 0x1b48f2b5
mov cl, byte [esp + esi + 0x1b0]
mov dword [esp + 0x78], eax
xor edx, edx
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x84]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x10]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b0]
mov byte [esp + esi + 0x1b0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1b0], al
mov eax, dword [esp + 0x78]
cmp esi, 0x100
jb 0x439372
xor eax, eax
mov dword [esp + 0x84], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x84]
mov cl, byte [esp + edi + 0x1b0]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x84], eax
mov al, byte [esp + eax + 0x1b0]
mov byte [esp + edi + 0x1b0], al
mov eax, dword [esp + 0x84]
mov byte [esp + eax + 0x1b0], cl
movzx eax, byte [esp + edi + 0x1b0]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b0]
xor al, byte [esp + esi + 0x48]
mov byte [esp + esi + 0x3d4], al
inc esi
cmp esi, 0x18
jb 0x4393d3
xor eax, eax
mov dword [esp + 0x10], 0x41
push 0x59
mov byte [esp + 0x3f0], al
mov ecx, eax
mov dword [esp + 0x18], 0xffffff66
pop edx
add edx, dword [esp + ecx*4 + 0x10]
inc ecx
cmp ecx, 2
jl 0x439455
push 3
pop esi
mov dword [esp + 0x1c], esi
xorps xmm1, xmm1
mov dword [esp + 0x20], 0x31
xorps xmm2, xmm2
mov dword [esp + 0x24], 0x2a
mov dword [esp + 0x28], 0xffffffda
movups xmm0, xmmword [esp + 0x1c]
push 0xc
mov dword [esp + 0x88], edx
psubd xmm1, xmm0
mov dword [esp + 0x18], 0x3f
movaps xmm0, xmm1
mov dword [esp + 0x1c], 0xffffffa6
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
add ecx, 0x40
mov dword [esp + 0x190], ecx
pop ecx
push 0x13
mov dword [esp + 0x14], ecx
mov ecx, eax
pop edx
add edx, dword [esp + ecx*4 + 0x10]
inc ecx
cmp ecx, esi
jl 0x4394d6
mov dword [esp + 0x1c], 0xd
movaps xmm1, xmm2
mov dword [esp + 0x20], 0x5f
mov dword [esp + 0x24], 0x62
mov dword [esp + 0x28], 0xffffff32
movups xmm0, xmmword [esp + 0x1c]
push 0x3e
mov dword [esp + 0x2f8], edx
psubd xmm1, xmm0
mov dword [esp + 0x14], 0x2d
movaps xmm0, xmm1
mov dword [esp + 0x18], 0xffffff95
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [esp + 0x2f4], xmm1
pop ecx
add ecx, dword [esp + eax*4 + 0x10]
inc eax
cmp eax, 2
jl 0x439546
mov esi, dword [esp + 0x78]
mov edx, 0x1d69
mov eax, dword [esp + 0x2bc]
or esi, 0x5fe18209
push 0x77
pop edi
mov dword [esp + 0x10], ecx
mov ecx, edi
mov dword [esp + 0x40], eax
mov eax, 0x403220
mov dword [0x44daf8], esi
add edx, ecx
inc eax
cmp edx, 0x74a
ja 0x439592
movsx ecx, byte [eax]
test ecx, ecx
jne 0x43957e
jmp 0x4395aa
push ecx
mov ecx, 0x4031e0
call fcn.0043740d
mov esi, dword [0x44daf8]
pop ecx
sub esi, 0x6414acfa
mov eax, dword [esp + 0x15c]
add esi, 0xf752c3c2
and esi, 0xf43952f2
mov dword [0x44daf8], esi
cmp dword [ebp + 0x10], eax
jne 0x4396be
mov edx, 0x4dc
mov eax, 0x403220
mov ecx, edi
add edx, ecx
inc eax
cmp edx, 0x1fd5
ja 0x4395ec
movsx ecx, byte [eax]
test ecx, ecx
jne 0x4395d8
jmp 0x439601
mov eax, dword [esp + 0x44]
mov edx, eax
push eax
mov ecx, eax
call fcn.004372a9
pop ecx
imul esi, esi, 0xc638e86c
push 7
pop eax
push 9
mov dword [esp + 0x20], eax
and esi, 0xe114011
pop eax
xor esi, 0x41abd91d
mov dword [esp + 0x20], eax
push 0x64
mov dword [0x44daf8], esi
xor eax, eax
mov dword [esp + 0x28], 0xffffff8d
pop ecx
add ecx, dword [esp + eax*4 + 0x1c]
inc eax
cmp eax, 3
jl 0x43962e
mov dword [esp + 0x15c], ecx
mov ecx, dword [ebp + 0x14]
call fcn.0042027c
mov ecx, dword [esp + 0x15c]
neg ecx
mov dword [esp + 0x40], eax
cmp eax, ecx
jne 0x4396be
mov eax, dword [0x44daf8]
push 0x1b
and eax, 0x5a3c284f
mov dword [esp + 0xf0], 0x3e
pop ecx
xor eax, 0xf4b0b505
mov dword [esp + 0xf0], 0x21
push 5
mov dword [0x44daf8], eax
xor eax, eax
mov dword [esp + 0xf8], 0x14
mov dword [esp + 0xfc], 0x61
mov dword [esp + 0x100], 0xffffff44
pop edx
sub ecx, dword [esp + eax*4 + 0xec]
inc eax
cmp eax, edx
jl 0x4396ab
mov eax, ecx
jmp 0x43a829
mov eax, dword [esp + 0x2c0]
push 0x10
push dword [esp + 0x2d0]
mov dword [esp + 0x160], eax
lea eax, [esp + 0xf4]
push eax
call fcn.004360de
push 0x48
push dword [esp + 0x2f4]
lea eax, [esp + 0x36c]
push eax
call fcn.004360de
add esp, 0x18
lea eax, [esp + 0x158]
lea ecx, [esp + 0x324]
push eax
push dword [esp + 0x2ec]
push dword [esp + 0x2f4]
push dword [esp + 0x304]
call fcn.0041e657
mov edx, eax
lea ecx, [esp + 0x480]
call fcn.0041e636
call eax
push 9
mov ecx, 0x4031e0
mov al, 0x45
pop edx
sub al, 0x30
cmp al, dl
ja 0x439752
inc ecx
mov al, byte [ecx]
test al, al
jne 0x43973e
mov eax, dword [0x44daf8]
jmp 0x43975c
mov eax, dword [0x44daf8]
xor eax, 0xcfba5c65
mov ecx, dword [esp + 0x158]
or eax, 0xd2c8f1bc
mov dword [0x44daf8], eax
call fcn.0041e51b
lea ecx, [esp + 0x158]
mov dword [esp + 0x39c], eax
push ecx
push dword [esp + 0x300]
lea ecx, [esp + 0x334]
push dword [esp + 0x308]
push eax
call fcn.0041e657
mov edx, eax
lea ecx, [esp + 0x4c8]
call fcn.0041e636
call eax
mov edx, dword [esp + 0x304]
xor eax, eax
push dword [esp + 0x308]
bts eax, edx
xor ecx, ecx
push dword [esp + 0x310]
cmp edx, 0x20
push 8
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
mov dword [esp + 0x94], eax
cmovae ecx, eax
lea eax, [esp + 0x94]
push eax
mov eax, dword [esp + 0x320]
cmp dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x1a8]
cmovne ecx, dword [esp + 0x174]
cmp eax, dword [esp + 0x17c]
mov eax, dword [esp + 0x180]
cmovne eax, dword [esp + 0xf4]
or ecx, eax
mov eax, dword [esp + 0x184]
cmp eax, dword [esp + 0x148]
mov eax, dword [esp + 0x14c]
cmovne eax, dword [esp + 0x188]
or ecx, eax
mov eax, dword [esp + 0x8c]
push 7
pop edx
and eax, edx
or ecx, eax
push ecx
push dword [esp + 0x154]
lea ecx, [esp + 0x34c]
push dword [esp + 0x3b4]
call fcn.0041e657
mov edx, eax
lea ecx, [esp + 0x45c]
call fcn.0041e636
call eax
mov eax, dword [esp + 0x98]
cmp dword [ebp + 0x10], eax
jne 0x43a12f
mov esi, 0x4028d4
mov dword [esp + 0x10c], 0xd890a73d
lea edi, [esp + 0x178]
mov word [esp + 0x110], 0x7971
push 0x5a
pop eax
movsd dword es:[edi], dword [esi]
mov edx, 0x403240
push 6
pop ecx
mov byte [esp + 0x112], al
movsd dword es:[edi], dword [esi]
mov byte [esp + 0x12b], al
xor eax, eax
mov byte [esp + 0x114], cl
mov ecx, eax
mov byte [esp + 0x113], 0x54
movsw word es:[edi], word [esi]
mov dword [esp + 0x115], 0x149aa4e9
mov dword [esp + 0x119], 0x1a15a9aa
mov dword [esp + 0x11d], 0x8d50a8fe
mov dword [esp + 0x121], 0x751a9967
mov dword [esp + 0x125], 0xf0d6fc8
mov word [esp + 0x129], 0x7438
mov dword [esp + 0x12c], 0x9db1040d
mov dword [esp + 0x130], 0x66876277
mov dword [esp + 0x134], 0xce2c3684
movsb byte es:[edi], byte [esi]
inc ecx
lea edx, [edx + 2]
cmp ecx, 0x26df
jl 0x43995f
cmp word [edx], ax
jne 0x439946
mov ecx, dword [0x44daf8]
jmp 0x43996b
mov ecx, dword [0x44daf8]
or ecx, 0x260b5d4c
imul esi, ecx, 0x33d6cf12
mov ecx, eax
add esi, 0x3fdf3b16
mov dword [esp + 0x30], esi
mov byte [esp + ecx + 0x1b0], cl
inc ecx
cmp ecx, 0x100
jb 0x43997d
mov edi, eax
mov esi, eax
xor edx, edx
mov cl, byte [esp + edi + 0x1b0]
mov eax, edi
mov byte [esp + 0xf], cl
div dword [esp + 0x38]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x178]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [esp + esi + 0x1b0]
mov byte [esp + edi + 0x1b0], al
inc edi
mov al, byte [esp + 0xf]
mov byte [esp + esi + 0x1b0], al
cmp edi, 0x100
jb 0x439991
mov esi, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x38], eax
mov ecx, eax
mov edi, eax
lea eax, [ecx + 1]
xor esi, 0xc9004d11
movzx eax, al
mov dword [esp + 0x78], eax
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x78]
mov cl, byte [esp + eax + 0x1b0]
mov eax, dword [esp + 0x38]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x38], eax
mov al, byte [esp + eax + 0x1b0]
mov byte [esp + esi + 0x1b0], al
mov eax, dword [esp + 0x38]
mov byte [esp + eax + 0x1b0], cl
mov ecx, esi
mov esi, dword [esp + 0x30]
movzx eax, byte [esp + ecx + 0x1b0]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b0]
xor al, byte [esp + edi + 0x10c]
mov byte [esp + edi + 0x3f0], al
inc edi
cmp edi, 0x2c
jb 0x4399e6
xor eax, eax
mov dword [esp + 0x98], 0xa4354590
or esi, 0x2643bfc7
mov byte [esp + 0x41c], al
mov dword [esp + 0x30], esi
lea edi, [esp + 0x1c]
mov esi, 0x40294c
mov word [esp + 0x9c], 0x3ba0
mov ecx, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, eax
mov byte [esp + ecx + 0x500], cl
inc ecx
cmp ecx, 0x100
jb 0x439a95
mov esi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x500]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x144]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x1c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x500]
mov byte [esp + esi + 0x500], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x500], al
cmp esi, 0x100
jb 0x439aa7
mov esi, dword [esp + 0x30]
xor eax, eax
mov ecx, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x80], ecx
mov edi, eax
inc eax
cmp eax, 0x1831
je 0x439b1d
cmp byte [eax + 0x403220], 0
jne 0x439b03
cmp eax, 0x28c
jle 0x439b3a
jmp 0x439b23
or esi, 0x76e7d367
mov eax, 0x4031e0
push eax
mov edx, eax
mov ecx, eax
call fcn.004372a9
pop ecx
mov ecx, dword [esp + 0x80]
lea eax, [ecx + 1]
sub esi, 0x2c6ef783
movzx eax, al
mov dword [esp + 0x80], eax
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x80]
mov cl, byte [esp + eax + 0x500]
mov eax, dword [esp + 0x38]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x38], eax
push 6
mov al, byte [esp + eax + 0x504]
mov byte [esp + esi + 0x504], al
mov eax, dword [esp + 0x3c]
mov byte [esp + eax + 0x504], cl
mov ecx, esi
mov esi, dword [esp + 0x34]
movzx eax, byte [esp + ecx + 0x504]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x504]
xor al, byte [esp + edi + 0x9c]
mov byte [esp + edi + 0x19c], al
inc edi
pop eax
push 0
cmp edi, eax
pop eax
jb 0x439b03
push 9
mov byte [esp + 0x1a2], al
mov ecx, 0x4031e0
mov al, 0x45
pop edx
sub al, 0x30
cmp al, dl
ja 0x439bdf
inc ecx
mov al, byte [ecx]
test al, al
jne 0x439bd0
jmp 0x439be5
sub esi, 0x10f79df4
mov edi, dword [esp + 0x44]
and esi, 0x5e31793b
push edi
mov edx, edi
mov ecx, edi
call fcn.004372a9
pop ecx
push 0xa
pop eax
mov dword [esp + 0x1c], eax
mov edx, 0x1415
mov dword [esp + 0x20], 0x28
mov dword [esp + 0x24], 0x3e
mov dword [esp + 0x28], 0xffffff6d
movups xmm1, xmmword [esp + 0x1c]
push 0x23
pop ecx
movaps xmm0, xmm1
mov dword [esp + 0x34c], ecx
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x350], ecx
movups xmm0, xmm1
mov dword [esp + 0x344], 0x56
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x348], 0x41
movd eax, xmm1
push 0x77
mov dword [esp + 0x358], 0xffffff23
add eax, ecx
mov dword [esp + 0x168], eax
mov eax, edi
pop edi
mov ecx, edi
add edx, ecx
inc eax
cmp edx, 0x8ac
ja 0x439c98
movsx ecx, byte [eax]
test ecx, ecx
jne 0x439c81
jmp 0x439d1b
mov eax, dword [esp + 0x44]
mov edx, eax
push eax
mov ecx, eax
call fcn.004372a9
mov edx, dword [esp + 0x48]
sub esi, 0x7e2eb725
mov ecx, edx
mov dword [esp], 0x4031e0
call fcn.004372a9
pop ecx
mov edx, 0xc14
mov eax, 0x403220
mov ecx, edi
add edx, ecx
inc eax
cmp edx, 0x17aa
ja 0x439cdf
movsx ecx, byte [eax]
test ecx, ecx
jne 0x439ccb
jmp 0x439cf8
mov eax, 0x4031e0
imul esi, esi, 0x7cba861a
push eax
mov edx, 0x403220
mov ecx, eax
call fcn.004372a9
pop ecx
lea eax, [esi + 0x2528a965]
imul eax, eax, 0x2f22e168
push ecx
mov ecx, 0x4031e0
mov dword [0x44daf8], eax
call fcn.0043740d
mov esi, dword [0x44daf8]
pop ecx
mov edx, 0x10c3
mov eax, 0x403220
mov ecx, edi
add edx, ecx
inc eax
cmp edx, 0xd91
ja 0x439d41
movsx ecx, byte [eax]
test ecx, ecx
jne 0x439d27
or esi, 0x5f560023
jmp 0x439d6c
mov edi, dword [esp + 0x44]
mov edx, edi
push edi
mov ecx, edi
call fcn.004372a9
mov edx, edi
mov dword [esp], 0x4031e0
mov ecx, edi
xor esi, 0xd1536c16
call fcn.004372a9
pop ecx
and esi, 0x43a75d32
imul eax, esi, 0x27f738e1
push ecx
mov ecx, 0x4031e0
mov dword [0x44daf8], eax
call fcn.0043740d
pop ecx
mov eax, dword [0x44daf8]
or eax, 0x1170ab94
imul edi, eax, 0x8b6d1ba0
xor eax, eax
push 5
mov ecx, eax
xor edx, edx
pop esi
sub edx, dword [esp + ecx*4 + 0x344]
inc ecx
cmp ecx, esi
jl 0x439d9c
mov dword [esp + 0x1c], 0x25
xorps xmm1, xmm1
mov dword [esp + 0x20], 0x2d
xorps xmm2, xmm2
mov dword [esp + 0x24], 0x62
mov dword [esp + 0x28], 0xffffff4c
movups xmm0, xmmword [esp + 0x1c]
push 6
pop ecx
psubd xmm1, xmm0
mov dword [esp + 0x20], ecx
movaps xmm0, xmm1
mov dword [esp + 0x1c], 0x53
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x24], 0x34
movups xmm0, xmm1
mov dword [esp + 0x28], 0xff68
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x144], edx
movd dword [esp + 0x98], xmm1
mov edx, eax
movups xmm1, xmmword [esp + 0x1c]
push 0x39
mov dword [esp + 0x20], 0x20
movaps xmm0, xmm1
mov dword [esp + 0x24], 0x55
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x28], 0xffffff52
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
add ecx, 0xb
mov dword [esp + 0x144], ecx
pop ecx
add ecx, dword [esp + edx*4 + 0x1c]
inc edx
cmp edx, 3
jl 0x439e66
push 7
pop edx
mov esi, edx
mov dword [esp + 0x1c], 0x5b
mov dword [esp + 0x20], 0x39
mov edx, eax
mov dword [esp + 0x24], 0x26
mov dword [esp + 0x28], 0xffffff4c
sub esi, dword [esp + edx*4 + 0x1c]
xor edi, 0xa200fcc5
inc edx
cmp edx, 4
jl 0x439e97
push 0xc
pop edx
mov dword [esp + 0x20], edx
movaps xmm1, xmm2
mov dword [esp + 0x1c], 0xd
mov edx, eax
mov dword [esp + 0x24], 0x62
mov dword [esp + 0x28], 0xffffff85
movups xmm0, xmmword [esp + 0x1c]
push 0x3b
mov dword [esp + 0x174], esi
psubd xmm1, xmm0
mov dword [esp + 0x20], 0x5c
movaps xmm0, xmm1
mov dword [esp + 0x24], 0x11
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x28], 0x1ff58
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [esp + 0x178], xmm1
pop esi
add esi, dword [esp + edx*4 + 0x1c]
inc edx
cmp edx, 3
jl 0x439f17
mov dword [esp + 0x1c], 0x62
movaps xmm1, xmm2
mov dword [esp + 0x20], 0x57
and edi, 0xf033746c
mov dword [esp + 0x24], 0x24
mov dword [esp + 0x28], 0xffffff23
movups xmm0, xmmword [esp + 0x1c]
push 0x34
mov dword [esp + 0x16c], esi
psubd xmm1, xmm0
mov dword [esp + 0x20], 0x55
movaps xmm0, xmm1
mov dword [esp + 0x28], 0x5b
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x2c], 0xfffffeef
movups xmm0, xmm1
mov dword [esp + 0x17c], 0x3a
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x180], 0xffffff92
pop esi
movd dword [esp + 0x16c], xmm1
movaps xmm1, xmm2
mov dword [esp + 0x20], esi
movups xmm0, xmmword [esp + 0x1c]
paddd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd edx, xmm1
add edx, 0x2d
mov dword [esp + 0x13c], edx
mov edx, eax
add esi, dword [esp + edx*4 + 0x178]
inc edx
cmp edx, 2
jl 0x439fe4
push 0xe
pop edx
push 0x12
mov dword [esp + 0x20], edx
pop edx
push 0x10
mov dword [esp + 0x17c], esi
mov dword [esp + 0x24], edx
mov edx, eax
mov dword [esp + 0x28], 0x3ffd0
pop esi
add esi, dword [esp + edx*4 + 0x1c]
inc edx
cmp edx, 3
jl 0x43a013
mov dword [esp + 0x138], esi
mov edx, eax
mov esi, eax
mov dword [esp + 0x1c], 3
mov dword [esp + 0x20], 0x2d
mov dword [esp + 0x24], 0xffffffd0
sub esi, dword [esp + edx*4 + 0x1c]
inc edx
cmp edx, 3
jl 0x43a040
sub edi, 0x35b5c342
mov dword [esp + 0x48], 0x3f
mov dword [0x44daf8], edi
mov edx, eax
mov edi, eax
mov dword [esp + 0x4c], 0x15
mov dword [esp + 0x50], 0x55
mov dword [esp + 0x54], 0x46
mov dword [esp + 0x58], 0xffffff11
sub edi, dword [esp + edx*4 + 0x48]
inc edx
cmp edx, 5
jl 0x43a082
push 0x24
pop edx
mov dword [esp + 0x1a0], edx
mov dword [esp + 0x1a4], 0xffffffb8
add edx, dword [esp + eax*4 + 0x1a0]
inc eax
cmp eax, 2
jl 0x43a0a1
push edx
push edi
push 4
lea eax, [esp + 0x4c]
push eax
mov eax, dword [esp + 0x154]
cmp eax, dword [esp + 0xa8]
mov eax, dword [esp + 0x188]
cmovne ecx, dword [esp + 0x150]
cmp dword [esp + 0x14c], eax
mov eax, dword [esp + 0x184]
cmovne esi, dword [esp + 0x148]
or ecx, esi
cmp dword [esp + 0x180], eax
mov eax, dword [esp + 0x17c]
cmovne eax, dword [esp + 0x178]
or ecx, eax
push ecx
push dword [esp + 0x178]
lea ecx, [esp + 0x1b0]
push dword [esp + 0x3b4]
call fcn.0041e657
mov edx, eax
lea ecx, [esp + 0x40c]
call fcn.0041e636
call eax
mov eax, dword [esp + 0x314]
lea ecx, [esp + 0x33c]
or eax, 0x80000
mov dword [esp + 0x358], 0x48
mov dword [esp + 0x384], eax
mov eax, dword [esp + 0x318]
mov word [esp + 0x388], ax
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x35c]
push eax
push dword [esp + 0x10c]
mov eax, dword [esp + 0x328]
push dword [esp + 0x10c]
or eax, dword [esp + 0x330]
or eax, 0x8080000
push eax
push dword [esp + 0x2c4]
push dword [esp + 0x2cc]
push dword [esp + 0x2d4]
push dword [esp + 0x168]
push dword [esp + 0x170]
call fcn.0041e657
mov edx, eax
lea ecx, [esp + 0x3e0]
call fcn.0041e636
call eax
test eax, eax
jne 0x43a26f
push 0xb
pop edx
push 5
mov dword [esp + 0x4c], 0x33
mov ecx, eax
mov dword [esp + 0x50], 0x18
mov dword [esp + 0x54], 0x24
mov dword [esp + 0x58], 0x4e
mov dword [esp + 0x5c], 0xffffff4d
pop esi
sub edx, dword [esp + ecx*4 + 0x48]
inc ecx
cmp ecx, esi
jl 0x43a205
push 0xa
pop ecx
push 0x15
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x150], edx
mov dword [esp + 0x1b0], 0xffffffe6
pop ecx
add ecx, dword [esp + eax*4 + 0x1a8]
inc eax
cmp eax, 2
jl 0x43a22d
mov dword [esp + 0x148], ecx
mov ecx, dword [esp + 0x39c]
call fcn.0041e600
mov eax, dword [esp + 0x14c]
cmp dword [ebp + 0x10], eax
jne 0x43a263
push dword [esp + 0x40]
call fcn.0044c79f
pop ecx
mov eax, dword [esp + 0x148]
jmp 0x43a829
push dword [esp + 0x39c]
lea ecx, [esp + 0x188]
call fcn.0041e657
mov edx, eax
lea ecx, [esp + 0xa4]
call fcn.0041e636
call eax
mov ecx, dword [esp + 0x39c]
call fcn.0041e600
mov eax, dword [esp + 0x34]
cmp dword [ebp + 0x10], eax
jne 0x43a2b1
push dword [esp + 0x40]
call fcn.0044c79f
pop ecx
push dword [esp + 0x2c4]
or dword [0x44daf8], 0x54b768e8
lea eax, [esp + 0x3a4]
push 0x18
push eax
push 0
push dword [esp + 0xfc]
call fcn.0044c781
mov edi, 0x210
mov ecx, edi
call fcn.0041e51b
push dword [esp + 0x2dc]
mov esi, eax
push edi
push esi
push dword [esp + 0x3c4]
push dword [esp + 0x110]
call fcn.0044c763
add esp, 0x28
mov ecx, esi
call fcn.0041e600
push 0x77
mov ecx, 0x403220
pop edx
push 9
sub dl, 0x30
pop eax
cmp dl, al
ja 0x43a330
inc ecx
mov al, byte [ecx]
mov dl, al
test al, al
jne 0x43a316
mov eax, dword [0x44daf8]
jmp 0x43a33a
mov eax, dword [0x44daf8]
sub eax, 0x8d1caa2
imul eax, eax, 0xdd6e96ba
push ecx
mov ecx, 0x4031e0
mov dword [0x44daf8], eax
call fcn.0043740d
pop ecx
mov ecx, dword [esp + 0x108]
movzx eax, word [ecx]
cmp eax, dword [esp + 0x150]
je 0x43a3de
push 0xe
pop ecx
xor eax, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x44daf8]
mov esi, eax
mov dword [esp + 0x20], 0x33
mov edx, eax
mov dword [esp + 0x24], 0xffffffbf
sub esi, dword [esp + edx*4 + 0x1c]
imul ecx, ecx, 0x4807654a
inc edx
cmp edx, 3
jl 0x43a387
and ecx, 0x55c1eba9
mov dword [esp + 0x1c], 0x22
push 0x5a
mov dword [esp + 0x24], 0x45
mov dword [esp + 0x28], 0xffffffed
mov dword [0x44daf8], ecx
pop edi
sub edi, dword [esp + eax*4 + 0x1c]
inc eax
cmp eax, 3
jl 0x43a3be
push esi
push dword [esp + 0xf4]
call fcn.0044c745
pop ecx
pop ecx
mov eax, edi
jmp 0x43a829
mov esi, dword [ecx + 0x3c]
mov eax, dword [esp + 0x2d0]
add esi, ecx
push dword [esp + 0x2d4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x2dc]
or eax, dword [esp + 0x2e0]
push eax
lea eax, [esi + 0x50]
mov dword [esp + 0x158], esi
push eax
push dword [esp + 0x2ec]
lea eax, [esp + 0x84]
push eax
push dword [esp + 0x100]
call fcn.0044c777
mov ecx, dword [esi + 0x54]
call fcn.0041e51b
push dword [esi + 0x54]
mov edi, eax
push dword [esp + 0x124]
push edi
call fcn.00436044
push dword [esp + 0x178]
push dword [esi + 0x54]
push edi
push dword [esp + 0xa4]
push dword [esp + 0x120]
call fcn.0044c76d
add esp, 0x38
mov dword [esp + 0x154], eax
mov ecx, edi
cmp eax, dword [esp + 0x160]
je 0x43a4df
mov dword [esp + 0x1c], 0x18
xorps xmm1, xmm1
mov dword [esp + 0x20], 0x26
mov dword [esp + 0x24], 0x33
mov dword [esp + 0x28], 0xffffff8f
movups xmm0, xmmword [esp + 0x1c]
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd esi, xmm1
call fcn.0041e600
push esi
push dword [esp + 0xf4]
call fcn.0044c745
mov eax, dword [esp + 0x15c]
pop ecx
pop ecx
jmp 0x43a829
call fcn.0041e600
movzx edi, word [esi + 0x14]
movzx eax, word [esi + 6]
add edi, 0x28
add edi, esi
cmp dword [esp + 0x3c], eax
jge 0x43a666
add edi, dword [esp + 0xe8]
mov dword [esp + 0x1c], 0x1d
mov dword [esp + 0x20], 0x50
mov dword [esp + 0x24], 0xffffff8b
push 7
pop ecx
xor eax, eax
mov dword [esp + 0x48], ecx
mov edx, eax
mov dword [esp + 0x4c], 0x5a
mov dword [esp + 0x50], 0x20
mov ecx, eax
mov dword [esp + 0x54], 0x28
mov dword [esp + 0x58], 0xffffff57
sub edx, dword [esp + ecx*4 + 0x48]
inc ecx
cmp ecx, 5
jl 0x43a547
push 8
pop ecx
mov dword [esp + 0xe8], edx
mov edx, 0x4031e0
mov dword [esp + 0x38], ecx
mov cl, 0x45
sub cl, 0x30
cmp cl, 9
ja 0x43a57d
inc edx
mov cl, byte [edx]
test cl, cl
jne 0x43a566
mov ecx, dword [0x44daf8]
jmp 0x43a589
mov ecx, dword [0x44daf8]
and ecx, 0xefeb8c9a
mov esi, dword [esp + 0x38]
add ecx, 0x2db96bb7
mov edx, eax
mov dword [esp + 0x78], 0x4031e0
mov al, 0x45
sub al, 0x30
cmp al, 9
ja 0x43a5b6
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 0x78], eax
mov al, byte [eax]
test al, al
jne 0x43a59f
jmp 0x43a5bc
or ecx, 0x2690e705
add esi, dword [esp + edx*4 + 0x1c]
add ecx, 0xd3f9bba
inc edx
cmp edx, 3
jl 0x43a595
mov dword [0x44daf8], ecx
mov ecx, dword [edi]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x150]
call fcn.0041e51b
push dword [edi]
mov ecx, eax
mov eax, dword [edi + 4]
add eax, dword [esp + 0x10c]
push eax
push ecx
mov dword [esp + 0x88], ecx
call fcn.00436044
push dword [esp + 0xf4]
mov eax, dword [edi - 4]
push dword [edi]
add eax, dword [esp + 0x88]
push dword [esp + 0x90]
push eax
push dword [esp + 0x108]
call fcn.0044c76d
add esp, 0x20
mov dword [esp + 0x160], eax
cmp eax, dword [esp + 0x38]
jne 0x43a6c7
mov ecx, dword [esp + 0x7c]
add edi, 0x28
xor dword [0x44daf8], 0xb8764a5d
call fcn.0041e600
mov ecx, dword [esp + 0x3c]
movzx eax, word [esi + 6]
inc ecx
mov dword [esp + 0x3c], ecx
cmp ecx, eax
jl 0x43a51a
mov ecx, 0x2cc
call fcn.0041e51b
mov edi, eax
push edi
mov dword [edi], 0x10007
push dword [esp + 0xf4]
call fcn.0044c74f
pop ecx
pop ecx
lea ecx, [esp + 0x3d4]
call fcn.0043617c
mov ecx, dword [ebp + 8]
mov edx, eax
mov dword [esp + 0xe8], eax
call fcn.00436c9e
test eax, eax
jne 0x43a79a
push dword [ebp + 0xc]
mov eax, dword [esp + 0x10c]
mov edx, esi
push eax
mov ecx, eax
call fcn.004200a5
pop ecx
pop ecx
jmp 0x43a79d
mov dword [esp + 0x1c], 0x57
xor eax, eax
mov dword [esp + 0x20], 0xf
mov dword [esp + 0x24], 0x35
mov dword [esp + 0x28], 0xffffff65
inc eax
mov dword [esp + 0xe8], eax
cmp eax, 0x1e12
jg 0x43a761
cmp byte [eax + 0x403220], 0
jne 0x43a6e9
mov eax, dword [0x44daf8]
or eax, 0x5de93a41
movups xmm0, xmmword [esp + 0x1c]
mov ecx, dword [esp + 0x7c]
xor eax, 0xd595bf1e
xorps xmm1, xmm1
mov dword [0x44daf8], eax
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd esi, xmm1
call fcn.0041e600
push esi
push dword [esp + 0xf4]
call fcn.0044c745
mov eax, dword [esp + 0x168]
pop ecx
pop ecx
jmp 0x43a829
mov eax, 0x4031e0
push 0x403220
mov edx, eax
mov ecx, eax
call fcn.004372a9
mov eax, dword [0x44daf8]
and eax, 0xfd05c6ca
cmp dword [esp + 0xec], 0x1f81
pop ecx
jle 0x43a706
and eax, 0x489882a4
jmp 0x43a70b
mov eax, dword [esi + 0x28]
add eax, dword [esp + 0x74]
mov esi, dword [esp + 0xe8]
mov ecx, esi
mov dword [edi + 0xb0], eax
call fcn.004369c6
push eax
push dword [esp + 0x88]
push esi
call fcn.004360de
mov ecx, esi
call fcn.0041e600
push edi
push dword [esp + 0x100]
call fcn.0044c759
push dword [esp + 0x304]
lea eax, [esp + 0x8c]
push dword [esp + 0x30c]
push eax
mov eax, dword [esp + 0x3c4]
add eax, dword [esp + 0x1ac]
push eax
push dword [esp + 0x110]
call fcn.0044c76d
push dword [esp + 0x38]
push dword [esp + 0x11c]
call fcn.0044c745
add esp, 0x30
mov ecx, edi
call fcn.0041e600
mov eax, dword [esp + 0x1a8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret