Function at 0x43aa02
Capabilities:
Authenticate hmac
Encode data using xor
Encrypt data using rc4 ksa
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7e4
push ebx
push esi
push edi
push 0x11
pop eax
mov dword [esp + 0x2e4], ecx
xor ebx, ebx
mov ecx, eax
mov dword [esp + 0x2f8], edx
mov dword [esp + 0x30], 0xf
mov eax, ebx
mov dword [esp + 0x34], 0x42
mov dword [esp + 0x38], 0xffffff9e
add ecx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, 3
jl 0x43aa40
mov dword [esp + 0x308], ecx
mov eax, ebx
mov ecx, ebx
mov dword [esp + 0x30], 0x43
mov dword [esp + 0x34], 0x1c
mov dword [esp + 0x38], 0xffffffa1
sub ecx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, 3
jl 0x43aa6d
push 7
pop eax
mov edx, eax
mov dword [esp + 0x180], ecx
mov eax, dword [0x44a7e8]
mov ecx, ebx
mov dword [esp + 0x30], 0x10
add eax, 0xa79c8e27
mov dword [esp + 0x34], 0x37
mov dword [esp + 0x38], 0xffffffbf
sub edx, dword [esp + ecx*4 + 0x30]
and eax, 0xbef4de63
inc ecx
cmp ecx, 3
jl 0x43aaa7
push 0x5b
mov dword [esp + 0x188], edx
lea edi, [esp + 0x34]
pop edx
mov dword [esp + 0x14], 0x2b
mov esi, 0x402304
mov dword [esp + 0x18], 0x3a
xorps xmm2, xmm2
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], 0xffffff17
movups xmm1, xmmword [esp + 0x14]
mov dword [esp + 0x14], 0x34
mov dword [esp + 0x18], edx
movaps xmm0, xmm1
mov dword [esp + 0x1c], 0x57
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x20], 0xffffff1a
movups xmm0, xmm1
movsd dword es:[edi], dword [esi]
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x88], 0xab409be6
movups xmm0, xmmword [esp + 0x14]
push 0x2d
movd ecx, xmm1
xorps xmm1, xmm1
psubd xmm1, xmm0
mov dword [esp + 0x1c], 0x40
movaps xmm0, xmm1
mov dword [esp + 0x20], 0x20
psrldq xmm0, 8
add ecx, 0x29
paddd xmm1, xmm0
mov dword [esp + 0x24], 0xffffff73
movups xmm0, xmm1
mov dword [esp + 0x304], ecx
or eax, 0x3a920993
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x48], eax
pop eax
mov dword [esp + 0x14], eax
movups xmm0, xmmword [esp + 0x14]
push 0x14
movd dword [esp + 0x308], xmm1
xorps xmm1, xmm1
psubd xmm1, xmm0
mov dword [esp + 0x5c], eax
movaps xmm0, xmm1
mov dword [esp + 0x90], 0xb2a46381
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x94], 0x61ba4098
pop eax
movups xmm0, xmm1
mov byte [esp + 0xbc], al
psrldq xmm0, 4
push 0x11
paddd xmm1, xmm0
mov dword [esp + 0x98], 0x5a956f20
pop eax
movd dword [esp + 0x30c], xmm1
mov dword [esp + 0x98], 0xb1fa6f93
mov dword [esp + 0x9c], 0x3fb1dc67
mov dword [esp + 0xa0], 0x6371b6cd
mov dword [esp + 0xa4], 0xc8c76847
mov word [esp + 0xa8], 0x15ab
mov byte [esp + 0xaa], dl
mov dword [esp + 0xab], 0xc45ce349
mov dword [esp + 0xaf], 0xe7d3387
mov dword [esp + 0xb3], 0x4440ba10
mov dword [esp + 0xb7], 0x45a2609f
mov byte [esp + 0xbb], 0x27
mov dword [esp + 0xbd], 0x510e6bbc
mov word [esp + 0xc1], 0x6381
mov byte [esp + 0xc3], 0x87
mov byte [esp + 0xc4], al
mov word [esp + 0xc5], 0xba0d
mov byte [esp + 0xc7], 0xfa
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, ebx
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [esp + eax + 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x43ac9e
push 0xa
mov esi, ebx
pop ecx
xor edx, edx
mov bl, byte [esp + esi + 0x1b8]
mov eax, esi
div ecx
movzx ecx, bl
push 0xa
movzx eax, byte [esp + edx + 0x34]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [esp + edi + 0x1b8]
mov byte [esp + esi + 0x1b8], al
inc esi
mov byte [esp + edi + 0x1b8], bl
cmp esi, 0x100
jb 0x43acb2
mov esi, dword [esp + 0x44]
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov edi, ebx
lea eax, [ebx + 1]
imul esi, esi, 0x21667044
movzx ebx, al
mov eax, dword [esp + 0x28]
push 0x6e
mov cl, byte [esp + ebx + 0x1bc]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x2c], eax
mov al, byte [esp + eax + 0x1bc]
mov byte [esp + ebx + 0x1bc], al
mov eax, dword [esp + 0x2c]
mov byte [esp + eax + 0x1bc], cl
movzx eax, byte [esp + ebx + 0x1bc]
add eax, edx
mov edx, 0x148c
movzx eax, al
pop ecx
mov al, byte [esp + eax + 0x1b8]
mov byte [esp + 0x13], al
mov eax, 0x403b10
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0xacd
ja 0x43ad72
movzx ecx, word [eax]
test ecx, ecx
jne 0x43ad5c
jmp 0x43ad8d
push ecx
push esi
push ecx
call fcn.0043a9f0
imul esi, esi, 0x19d59f65
add esp, 8
push esi
push ecx
call fcn.0043a9f0
add esp, 0xc
mov al, byte [esp + edi + 0x88]
xor esi, 0xcd6602e1
xor al, byte [esp + 0x13]
mov byte [esp + edi + 0x460], al
inc edi
cmp edi, 0x40
jb 0x43acfb
imul eax, esi, 0xdf374988
lea edi, [esp + 0x14]
mov esi, 0x403a20
mov dword [esp + 0x48], 0x126eaa8c
xor ebx, ebx
mov word [esp + 0x4c], 0xb49f
mov byte [esp + 0x4a0], bl
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x44], eax
mov eax, ebx
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, ebx
mov byte [esp + eax + 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x43ade3
mov esi, ebx
mov dl, byte [esp + esi + 0x1b8]
mov eax, esi
and eax, 0xf
movzx ecx, dl
movzx eax, byte [esp + eax + 0x14]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b8]
mov byte [esp + esi + 0x1b8], al
inc esi
mov byte [esp + edi + 0x1b8], dl
cmp esi, 0x100
jb 0x43adf4
push 0x6e
mov edi, ebx
mov edx, 0xcfc
mov eax, 0x403b10
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x1377
ja 0x43ae56
movzx ecx, word [eax]
test ecx, ecx
jne 0x43ae3c
mov ecx, dword [esp + 0x44]
jmp 0x43ae6b
push ecx
mov ecx, dword [esp + 0x48]
push ecx
push ecx
call fcn.0043a9f0
add esp, 0xc
or ecx, 0x12fba36
lea eax, [ecx + 0xf0e6155]
mov esi, ebx
or eax, 0xe01366bd
mov dword [esp + 0x54], eax
lea eax, [edi + 1]
movzx edi, al
push 6
mov cl, byte [esp + edi + 0x1bc]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [esp + ebx + 0x1bc]
mov byte [esp + edi + 0x1bc], al
mov byte [esp + ebx + 0x1bc], cl
movzx eax, byte [esp + edi + 0x1bc]
add eax, edx
movzx eax, al
pop edx
mov al, byte [esp + eax + 0x1b8]
xor al, byte [esp + esi + 0x48]
mov byte [esp + esi + 0x33c], al
inc esi
cmp esi, edx
jb 0x43ae7c
xor ebx, ebx
mov dword [esp + 0x30], 0x36
push 0x16
mov byte [esp + 0x346], bl
mov eax, ebx
pop ecx
mov dword [esp + 0x34], 0x4d
mov dword [esp + 0x38], 0xffffff67
add ecx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, 3
jl 0x43aef4
push 0x51
mov dword [esp + 0x31c], ecx
mov eax, ebx
pop ecx
mov dword [esp + 0x80], 0x58
mov dword [esp + 0x84], 0xffffff59
add ecx, dword [esp + eax*4 + 0x80]
inc eax
cmp eax, 2
jl 0x43af20
push 0x52
mov dword [esp + 0x318], ecx
lea edi, [esp + 0x84]
pop ecx
mov dword [esp + 0x14], ecx
movaps xmm1, xmm2
mov dword [esp + 0x18], 0x28
mov esi, 0x403a34
mov dword [esp + 0x1c], 0x48
mov dword [esp + 0x20], 0xfffffee5
movups xmm0, xmmword [esp + 0x14]
movsd dword es:[edi], dword [esi]
push 0x14
paddd xmm1, xmm0
mov dword [esp + 0x8c], 0x2e0fafbd
movaps xmm0, xmm1
mov byte [esp + 0x90], cl
psrldq xmm0, 8
paddd xmm1, xmm0
movsw word es:[edi], word [esi]
movups xmm0, xmm1
mov dword [esp + 0x91], 0x211b4a71
psrldq xmm0, 4
paddd xmm1, xmm0
mov byte [esp + 0x95], 0x35
movd eax, xmm1
movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x58]
mov edi, ebx
add eax, 0x59
mov dword [esp + 0x97], 0x4a256d5f
mov dword [esp + 0x314], eax
xor esi, 0xb47b7dff
pop eax
mov byte [esp + 0x92], al
or esi, 0x207370b7
push 9
pop eax
mov byte [esp + 0xc6], al
mov eax, ebx
mov dword [esp + 0x97], 0xdb930a37
mov word [esp + 0x9b], 0x809f
mov byte [esp + 0x9d], dl
mov dword [esp + 0x9e], 0xd54d5e6b
mov dword [esp + 0xa2], 0xe87d0dd7
mov dword [esp + 0xa6], 0xa1d0bb5
mov dword [esp + 0xaa], 0x121869c2
mov dword [esp + 0xae], 0xb1040ed0
mov dword [esp + 0xb2], 0xa032ce00
mov dword [esp + 0xb6], 0xaed4e59f
mov dword [esp + 0xba], 0x9a89d9c4
mov dword [esp + 0xbe], 0x77b83dd8
mov dword [esp + 0xc2], 0x3358c11b
mov byte [esp + 0xc7], 0xc6
mov byte [esp + eax + 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x43b07f
mov eax, ebx
mov ecx, 0x403b20
add ecx, 2
inc eax
cmp eax, 0x2096
je 0x43b0b4
cmp word [ecx], bx
jne 0x43b095
cmp eax, 0x2e6
jg 0x43b0bf
xor esi, 0x2aee9fa
jmp 0x43b0c5
call fcn.0043a7f7
and esi, 0x14668771
add esi, 0x55c6827c
or esi, 0x6fd41c5a
push ecx
push esi
push ecx
mov dword [esp + 0x60], esi
call fcn.0043a9f0
add esp, 0xc
mov esi, ebx
xor edx, edx
mov bl, byte [esp + esi + 0x1b8]
push 6
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [esp + edx + 0x80]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b8]
mov byte [esp + esi + 0x1b8], al
inc esi
mov byte [esp + edi + 0x1b8], bl
cmp esi, 0x100
jb 0x43b0dc
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [esp + edi + 0x1b8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [esp + ebx + 0x1b8]
mov byte [esp + edi + 0x1b8], al
mov byte [esp + ebx + 0x1b8], cl
movzx eax, byte [esp + edi + 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b8]
xor al, byte [esp + esi + 0x88]
mov byte [esp + esi + 0x4a8], al
inc esi
cmp esi, 0x40
jb 0x43b122
mov esi, 0x403a3c
mov dword [esp + 0x48], 0xf8775dfe
lea edi, [esp + 0x30]
mov word [esp + 0x4c], 0xc050
xor ebx, ebx
mov byte [esp + 0x4e8], bl
mov eax, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, ebx
mov byte [esp + eax + 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x43b19e
mov esi, ebx
xor edx, edx
mov bl, byte [esp + esi + 0x1b8]
push 9
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [esp + edx + 0x30]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b8]
mov byte [esp + esi + 0x1b8], al
inc esi
mov byte [esp + edi + 0x1b8], bl
cmp esi, 0x100
jb 0x43b1af
mov esi, dword [esp + 0x54]
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov edi, ebx
lea eax, [ebx + 1]
xor esi, 0xd7963a57
movzx ebx, al
mov eax, dword [esp + 0x28]
push 6
mov cl, byte [esp + ebx + 0x1bc]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x2c], eax
mov al, byte [esp + eax + 0x1bc]
mov byte [esp + ebx + 0x1bc], al
mov eax, dword [esp + 0x2c]
mov byte [esp + eax + 0x1bc], cl
movzx eax, byte [esp + ebx + 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1bc]
xor al, byte [esp + edi + 0x4c]
mov byte [esp + edi + 0x348], al
inc edi
pop eax
cmp edi, eax
jb 0x43b1f8
xor ebx, ebx
mov ecx, 0x403b90
mov byte [esp + 0x34a], bl
mov al, 0x69
sub al, 0x30
cmp al, 9
ja 0x43b27a
inc ecx
mov al, byte [ecx]
test al, al
jne 0x43b26b
jmp 0x43b280
sub esi, 0x23904ed9
push ecx
add esi, 0x4b98645d
push esi
push ecx
call fcn.0043a9f0
add esp, 0xc
mov dword [esp + 0x44], 0x1e
mov edi, ebx
mov eax, 0x403b20
inc edi
lea eax, [eax + 2]
cmp edi, 0x16a3
jg 0x43b377
cmp word [eax], bx
jne 0x43b2a0
or esi, 0x2ccabc24
add esi, 0x8c8256f2
call fcn.0043a7f7
mov ecx, dword [esp + 0x44]
mov eax, ebx
push 0x45
pop edx
mov dword [esp + 0x30], 0x2f
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], 0xffffffa8
sub ecx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, 3
jl 0x43b2e3
mov dword [esp + 0x44], ecx
movaps xmm1, xmm2
push 0x51
pop ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0x35
mov dword [esp + 0x1c], 0x2a
mov dword [esp + 0x20], 0xffffff0b
movups xmm0, xmmword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov ecx, ebx
mov dword [esp + 0x14], 0x17
paddd xmm1, xmm0
mov dword [esp + 0x18], 0x1d
movaps xmm0, xmm1
mov dword [esp + 0x20], 0xffffff71
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, edx
mov dword [esp + 0x31c], eax
mov eax, 0x403b20
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x1581
jg 0x43b39b
cmp word [eax], bx
jne 0x43b364
jmp 0x43b3bb
push ecx
call fcn.0043a872
imul esi, esi, 0x8b66dc9c
pop ecx
cmp edi, 0x250d
jle 0x43b2b5
and esi, 0x6d5eba37
jmp 0x43b2bb
push ecx
push esi
push ecx
call fcn.0043a9f0
add esp, 0xc
and esi, 0x6f56b3a8
cmp ecx, 0x1756
jle 0x43b3bb
push ecx
call fcn.0043a872
pop ecx
movups xmm1, xmmword [esp + 0x14]
lea eax, [esi - 0x45cdad7d]
mov word [esp + 0xfc], 0x18b0
or eax, 0x5cf2489d
mov dword [esp + 0xff], 0x2fe48a25
paddd xmm1, xmm2
mov dword [esp + 0x28], eax
movaps xmm0, xmm1
mov dword [esp + 0x103], 0xd0243eb
psrldq xmm0, 8
lea edi, [esp + 0x370]
paddd xmm1, xmm0
mov dword [esp + 0x107], 0xc0c07323
movups xmm0, xmm1
mov dword [esp + 0x10b], 0xf61fba3e
psrldq xmm0, 4
mov esi, 0x401ab8
paddd xmm1, xmm0
mov dword [esp + 0x10f], 0x95c8983b
movd eax, xmm1
push 6
mov word [esp + 0x117], 0x31bc
add eax, 0x36
mov dword [esp + 0x11a], 0x2829d21c
mov dword [esp + 0x324], eax
pop eax
push 0x5b
mov byte [esp + 0x102], al
pop eax
push 0x17
pop ecx
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x115], al
mov edi, ebx
mov dword [esp + 0x11a], 0xdf21efb7
mov eax, ebx
mov dword [esp + 0x11e], 0xe498a837
mov dword [esp + 0x122], 0x7e7fa6b6
mov word [esp + 0x126], 0x7adf
mov byte [esp + eax + 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x43b4a3
mov esi, ebx
xor edx, edx
mov bl, byte [esp + esi + 0x1b8]
push 0x5b
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [esp + edx + 0x370]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b8]
mov byte [esp + esi + 0x1b8], al
inc esi
mov byte [esp + edi + 0x1b8], bl
cmp esi, 0x100
jb 0x43b4b4
xor ebx, ebx
sub dword [esp + 0x28], 0x769f96bc
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [esp + edi + 0x1b8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [esp + ebx + 0x1b8]
mov byte [esp + edi + 0x1b8], al
mov byte [esp + ebx + 0x1b8], cl
movzx eax, byte [esp + edi + 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b8]
xor al, byte [esp + esi + 0xfc]
mov byte [esp + esi + 0x3d0], al
inc esi
cmp esi, 0x2c
jb 0x43b502
push 5
pop eax
mov ecx, eax
mov dword [esp + 0x48], 0xcafec48c
mov esi, 0x402eec
mov word [esp + 0x4c], 0x5e69
lea edi, [esp + 0xd0]
xor ebx, ebx
rep movsd dword es:[edi], dword [esi]
push 0x6e
mov byte [esp + 0x400], bl
mov edx, 0x13f7
mov eax, 0x403b10
movsb byte es:[edi], byte [esi]
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x17e0
ja 0x43b5a8
movzx ecx, word [eax]
test ecx, ecx
jne 0x43b58e
mov edi, dword [esp + 0x28]
jmp 0x43b5b9
push ecx
call fcn.0043a872
mov edi, dword [esp + 0x2c]
pop ecx
or edi, 0x8cb9fb3b
sub edi, 0x5b579f70
mov eax, ebx
mov dword [esp + 0x28], edi
mov byte [esp + eax + 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x43b5c5
mov esi, ebx
mov edi, ebx
xor edx, edx
mov bl, byte [esp + esi + 0x1b8]
push 0x14
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [esp + edx + 0xd0]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b8]
mov byte [esp + esi + 0x1b8], al
inc esi
mov byte [esp + edi + 0x1b8], bl
cmp esi, 0x100
jb 0x43b5d8
mov edi, dword [esp + 0x28]
xor ebx, ebx
mov ecx, ebx
mov eax, 0x403b10
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x4b
jg 0x43b635
cmp word [eax], bx
jne 0x43b625
jmp 0x43b640
call fcn.0043a7f7
and edi, 0xee3889ed
lea esi, [edi + 0x1cb86384]
push ecx
xor esi, 0x84faf516
call fcn.0043a872
pop ecx
mov ecx, ebx
mov edi, ebx
mov edx, ecx
lea eax, [ecx + 1]
movzx eax, al
mov dword [esp + 0x2c], eax
mov al, byte [esp + eax + 0x1b8]
mov byte [esp + 0x13], al
movzx eax, al
mov dword [esp + 0x28], eax
add eax, edx
movzx eax, al
mov dword [esp + 0x54], eax
mov eax, ebx
inc eax
cmp eax, 0x1f4a
jg 0x43b69d
cmp byte [eax + 0x403b38], bl
jne 0x43b680
cmp eax, 0x32
jg 0x43b6ae
add esi, 0xfdea3c76
jmp 0x43b6bb
push ecx
push esi
push ecx
call fcn.0043a9f0
add esp, 0xc
sub esi, 0x14fe3283
push ecx
call fcn.0043a872
pop ecx
and esi, 0x1ff881d
call fcn.0043a7f7
mov edx, dword [esp + 0x54]
and esi, 0x8ebc7a43
mov ecx, dword [esp + 0x2c]
imul esi, esi, 0x54059118
push 6
mov al, byte [esp + edx + 0x1bc]
mov byte [esp + ecx + 0x1bc], al
mov al, byte [esp + 0x17]
mov byte [esp + edx + 0x1bc], al
movzx eax, byte [esp + ecx + 0x1bc]
add eax, dword [esp + 0x2c]
movzx eax, al
mov al, byte [esp + eax + 0x1bc]
xor al, byte [esp + edi + 0x4c]
mov byte [esp + edi + 0x350], al
inc edi
pop eax
cmp edi, eax
jb 0x43b659
push 5
mov byte [esp + 0x356], bl
mov ecx, ebx
mov dword [esp + 0x18], 0x3e
mov eax, ebx
mov dword [esp + 0x1c], 0x36
mov dword [esp + 0x20], 0x45
mov dword [esp + 0x24], 0x53
mov dword [esp + 0x28], 0xfffffef4
pop edx
sub ecx, dword [esp + eax*4 + 0x14]
inc eax
cmp eax, edx
jl 0x43b750
mov dword [esp + 0x14], 0x2d
movaps xmm1, xmm2
mov dword [esp + 0x18], 0x15
mov dword [esp + 0x1c], 0x3a
mov dword [esp + 0x20], 0x5ff7e
movups xmm0, xmmword [esp + 0x14]
push 0x23
mov dword [esp + 0xcc], ecx
psubd xmm1, xmm0
mov dword [esp + 0x34], 0x1c
movaps xmm0, xmm1
mov dword [esp + 0x38], 0x56
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x3c], 0xffffff6b
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop ecx
push 3
add eax, 0x6fff9
mov dword [esp + 0x18c], eax
mov eax, ebx
pop edi
add ecx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, edi
jl 0x43b7d4
push 4
mov dword [esp + 0x1b4], ecx
mov eax, ebx
pop ecx
push 0x46
pop edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], 0xffffffb6
add ecx, dword [esp + eax*4 + 0x80]
inc eax
cmp eax, 2
jl 0x43b7fe
push 0x32
mov dword [esp + 0x190], ecx
pop ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0x3f
mov dword [esp + 0x1c], 0x40
mov dword [esp + 0x20], 0xff1d
movups xmm1, xmmword [esp + 0x14]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], 0x62
paddd xmm1, xmm2
mov dword [esp + 0x18], 0x39
movaps xmm0, xmm1
mov dword [esp + 0x20], 0xffffff1c
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movups xmm0, xmmword [esp + 0x14]
push 0x6e
movd eax, xmm1
movaps xmm1, xmm2
paddd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
add eax, ecx
paddd xmm1, xmm0
mov dword [esp + 0x198], eax
movups xmm0, xmm1
mov ecx, 0x403b10
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop edx
add eax, edi
mov dword [esp + 0x190], eax
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x43b8ce
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x43b8b4
jmp 0x43b8d4
sub esi, 0x2daa938f
push ecx
and esi, 0xd00cf701
call fcn.0043a872
pop ecx
push 0xb
pop edx
mov ecx, edx
mov dword [esp + 0x30], 0x4a
mov dword [esp + 0x34], 0x22
mov eax, ebx
mov dword [esp + 0x38], 0xffffff9e
sub ecx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, edi
jl 0x43b900
mov dword [esp + 0x32c], ecx
mov eax, ebx
mov ecx, ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0x2b
mov dword [esp + 0x38], 0xffffffca
sub ecx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, edi
jl 0x43b928
push 7
pop eax
mov dword [esp + 0x30], eax
mov edi, 0x140000
push 0x14
pop eax
mov dword [esp + 0x330], ecx
mov ecx, ebx
mov dword [esp + 0x34], eax
mov eax, 0x403b10
mov dword [esp + 0x38], 0x11ffe5
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x194b
jg 0x43b96d
cmp word [eax], bx
jne 0x43b95a
jmp 0x43b978
call fcn.0043a7f7
xor esi, 0xc5682ce5
and esi, 0x6758c7c4
sub esi, 0x3a222610
call fcn.0043a7f7
mov eax, ebx
sub edi, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, 3
jl 0x43b98b
push 0x6e
mov dword [esp + 0x2c0], edi
mov edx, 0x1f4f
mov edi, ebx
mov dword [esp + 0x18], 0x4d
mov dword [esp + 0x1c], 0x24
mov eax, 0x403b10
mov dword [esp + 0x20], 0xb
mov dword [esp + 0x24], 0x4e
mov dword [esp + 0x28], 0xffffff36
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x4e3
ja 0x43b9e9
movzx ecx, word [eax]
test ecx, ecx
jne 0x43b9d3
jmp 0x43b9ef
xor esi, 0x7096b9c3
lea ecx, [esi - 0x70b7a54f]
mov eax, ebx
push 5
and ecx, 0xc3d2975c
pop esi
sub edi, dword [esp + eax*4 + 0x14]
inc eax
cmp eax, esi
jl 0x43ba00
push 7
pop eax
sub ecx, 0xd1768e6
mov dword [esp + 0x34], eax
mov dword [esp + 0x2b8], edi
mov edx, ebx
mov dword [esp + 0x30], 0x3f
mov eax, ebx
mov dword [esp + 0x38], 0xffffffba
mov dword [esp + 0x2c], ecx
sub edx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, 3
jl 0x43ba35
push 0x3d
mov dword [esp + 0x18], 0x61
mov ecx, ebx
mov dword [esp + 0x20], 0x4b
mov dword [esp + 0x24], 0xffffff09
pop edi
mov dword [esp + 0x18], edi
movups xmm1, xmmword [esp + 0x14]
mov dword [esp + 0x14], 0x2e
mov dword [esp + 0x18], 0x54
paddd xmm1, xmm2
mov dword [esp + 0x1c], 0xd
movaps xmm0, xmm1
mov dword [esp + 0x20], 0x1bff71
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x19c], edx
movups xmm0, xmm1
mov dword [esp + 0x24], 0xfffffefa
psrldq xmm0, 4
paddd xmm1, xmm0
movups xmm0, xmmword [esp + 0x14]
mov dword [esp + 0x14], 0x22
movd eax, xmm1
movaps xmm1, xmm2
psubd xmm1, xmm0
mov dword [esp + 0x18], 0x1f
movaps xmm0, xmm1
mov dword [esp + 0x1c], 0x3f
psrldq xmm0, 8
add eax, 0xe
paddd xmm1, xmm0
mov dword [esp + 0x198], eax
movups xmm0, xmm1
mov dword [esp + 0x20], 0xffffff31
psrldq xmm0, 4
paddd xmm1, xmm0
movups xmm0, xmmword [esp + 0x14]
mov dword [esp + 0x14], 0x5f
movd eax, xmm1
movaps xmm1, xmm2
paddd xmm1, xmm0
mov dword [esp + 0x18], 0x10
movaps xmm0, xmm1
mov dword [esp + 0x1c], 0x45
psrldq xmm0, 8
add eax, 0x200000
paddd xmm1, xmm0
mov dword [esp + 0x1a4], eax
movups xmm0, xmm1
mov dword [esp + 0x20], 0x52
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x4f
mov dword [esp + 0x1a0], eax
mov eax, ebx
sub ecx, dword [esp + eax*4 + 0x14]
inc eax
cmp eax, esi
jl 0x43bb66
push 0x2c
mov dword [esp + 0x32c], ecx
mov eax, ebx
pop ecx
mov dword [esp + 0x30], 0x59
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], 0xffffff76
add ecx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, 3
jl 0x43bb8f
push 0x1e
mov dword [esp + 0x328], ecx
mov eax, ebx
pop ecx
push 0x60
pop edx
mov dword [esp + 0x30], 0x3a
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], 0xffffff49
add ecx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, 3
jl 0x43bbbc
push 0xe
mov dword [esp + 0x60], ecx
pop ecx
push 9
pop eax
mov dword [esp + 0x18], eax
mov eax, ebx
mov dword [esp + 0x14], 0x3f
mov dword [esp + 0x1c], 0x4b
mov dword [esp + 0x20], 0x4c
mov dword [esp + 0x24], 0xffffff2e
sub ecx, dword [esp + eax*4 + 0x14]
inc eax
cmp eax, esi
jl 0x43bbf6
mov dword [esp + 0x2c0], ecx
mov eax, ebx
mov ecx, ebx
mov dword [esp + 0x14], 4
mov dword [esp + 0x18], 0x1d
mov dword [esp + 0x1c], 8
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], 0xffffff9a
sub ecx, dword [esp + eax*4 + 0x14]
inc eax
cmp eax, esi
jl 0x43bc2e
push 6
pop eax
mov dword [esp + 0x2c4], ecx
lea edi, [esp + 0xfc]
mov ecx, eax
mov dword [esp + 0xd0], 0x8f8cdc9a
mov esi, 0x403a48
mov dword [esp + 0xd4], 0xb11fa959
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xd8], 0x8ed76203
mov eax, ebx
mov dword [esp + 0xdc], 0xfcf63e8c
mov dword [esp + 0xe0], 0x9c4d4e28
movsw word es:[edi], word [esi]
mov dword [esp + 0xe4], 0x5d63dceb
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [esp + eax + 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x43bc9a
push 0x1a
mov esi, ebx
pop ecx
xor edx, edx
mov bl, byte [esp + esi + 0x1b8]
mov eax, esi
div ecx
movzx ecx, bl
push 0x1a
movzx eax, byte [esp + edx + 0x100]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [esp + edi + 0x1b8]
mov byte [esp + esi + 0x1b8], al
inc esi
mov byte [esp + edi + 0x1b8], bl
cmp esi, 0x100
jb 0x43bcae
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [esp + edi + 0x1b8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [esp + ebx + 0x1b8]
mov byte [esp + edi + 0x1b8], al
mov byte [esp + ebx + 0x1b8], cl
movzx eax, byte [esp + edi + 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b8]
xor al, byte [esp + esi + 0xd0]
mov byte [esp + esi + 0xfc], al
inc esi
cmp esi, 0x18
jb 0x43bcf4
mov esi, 0x40215c
mov dword [esp + 0x48], 0xf84a02ee
lea edi, [esp + 0x68]
mov word [esp + 0x4c], 0xd31f
xor ebx, ebx
mov eax, 0x403b20
mov byte [esp + 0x114], bl
mov ecx, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x553
jg 0x43bd89
cmp word [eax], bx
jne 0x43bd72
mov eax, dword [esp + 0x2c]
jmp 0x43bd92
mov eax, dword [esp + 0x2c]
or eax, 0xbd37e0fa
imul eax, eax, 0xf8072eee
mov edi, ebx
or eax, 0xef0c90b9
mov dword [esp + 0x2c], eax
mov eax, ebx
mov byte [esp + eax + 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x43bda5
mov esi, ebx
xor edx, edx
mov bl, byte [esp + esi + 0x1b8]
push 0xb
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [esp + edx + 0x68]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b8]
mov byte [esp + esi + 0x1b8], al
inc esi
mov byte [esp + edi + 0x1b8], bl
cmp esi, 0x100
jb 0x43bdb6
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
push 6
mov cl, byte [esp + edi + 0x1bc]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [esp + ebx + 0x1bc]
mov byte [esp + edi + 0x1bc], al
mov byte [esp + ebx + 0x1bc], cl
movzx eax, byte [esp + edi + 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1bc]
xor al, byte [esp + esi + 0x4c]
mov byte [esp + esi + 0x358], al
inc esi
pop eax
cmp esi, eax
jb 0x43bdf9
push 0x2f
pop ecx
push 0x35
xor ebx, ebx
mov dword [esp + 0x38], 0x1c
pop edx
mov byte [esp + 0x35a], bl
mov eax, ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], 0xffffff80
add ecx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, 3
jl 0x43be70
push 0x3c
mov dword [esp + 0x2e4], ecx
mov eax, ebx
pop ecx
mov dword [esp + 0x30], 0x5c
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], 0xffffff33
add ecx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, 3
jl 0x43be9a
push 0x3d
mov dword [esp + 0x2e0], ecx
mov eax, ebx
pop ecx
mov dword [esp + 0x80], 0x39
mov dword [esp + 0x84], 0xffffff8a
add ecx, dword [esp + eax*4 + 0x80]
inc eax
cmp eax, 2
jl 0x43bec6
push 0x48
mov dword [esp + 0x2dc], ecx
mov edx, 0x1628
mov eax, 0x403b38
pop ecx
add edx, ecx
inc eax
cmp edx, 0x5dd
ja 0x43beff
movsx ecx, byte [eax]
test ecx, ecx
jne 0x43bee7
mov eax, dword [esp + 0x2c]
jmp 0x43bf0f
push ecx
call fcn.0043a872
mov eax, dword [esp + 0x30]
pop ecx
add eax, 0x60222243
mov dword [esp + 0x14], 0x1f
mov dword [esp + 0x18], 0x17
mov dword [esp + 0x1c], 0x49
mov dword [esp + 0x20], 0xffffff73
movups xmm1, xmmword [esp + 0x14]
push 0x2c
imul ecx, eax, 0xe4d8fa9
paddd xmm1, xmm2
mov dword [esp + 0x38], 0x13
movaps xmm0, xmm1
mov dword [esp + 0x3c], 0xffffffb4
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
or ecx, 0x5c10bef0
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop edx
push 0x11
add eax, 0xf
mov dword [esp + 0x2d8], eax
pop eax
mov dword [esp + 0x30], eax
mov eax, ebx
add edx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, 3
jl 0x43bf86
push 0x78
mov dword [esp + 0x2d4], edx
mov eax, ebx
pop edx
mov dword [esp + 0x14], 0x32
mov dword [esp + 0x18], 0x4f
mov dword [esp + 0x1c], 0x40
mov dword [esp + 0x20], 0xffffffaf
sub edx, dword [esp + eax*4 + 0x14]
sub ecx, 0x78d15b79
inc eax
cmp eax, 4
jl 0x43bfbc
push 5
pop eax
push 0xc
mov dword [esp + 0x2c], ecx
pop ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], 0x10
mov dword [esp + 0x20], 0xffffffd3
movups xmm1, xmmword [esp + 0x14]
push 0x54
mov dword [esp + 0x2d0], edx
paddd xmm1, xmm2
mov dword [esp + 0x84], 0x24
movaps xmm0, xmm1
mov dword [esp + 0x88], 0xffffff88
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, ecx
mov dword [esp + 0x2cc], eax
mov eax, ebx
pop ecx
add ecx, dword [esp + eax*4 + 0x80]
inc eax
cmp eax, 2
jl 0x43c03e
push 0x14
pop eax
mov byte [esp + 0x141], al
mov edi, ebx
mov eax, dword [0x402060]
mov dword [esp + 0x48], eax
mov ax, word [0x402064]
mov word [esp + 0x4c], ax
mov eax, ebx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x128], 0x987f0fc9
mov dword [esp + 0x12c], 0xf979b842
mov dword [esp + 0x130], 0x216aca9
mov dword [esp + 0x134], 0x932f7ff5
mov dword [esp + 0x138], 0xa318c115
mov dword [esp + 0x13c], 0x8a310d6
mov byte [esp + 0x140], 0xd9
mov dword [esp + 0x142], 0x4187ab13
mov dword [esp + 0x146], 0xf8666564
mov dword [esp + 0x14a], 0xad45b596
mov dword [esp + 0x14e], 0x99084c73
mov word [esp + 0x152], 0x9839
mov byte [esp + eax + 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x43c0f1
mov esi, ebx
xor edx, edx
mov bl, byte [esp + esi + 0x1b8]
push 5
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [esp + edx + 0x48]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b8]
mov byte [esp + esi + 0x1b8], al
inc esi
mov byte [esp + edi + 0x1b8], bl
cmp esi, 0x100
jb 0x43c102
xor ebx, ebx
sub dword [esp + 0x28], 0x6f19d064
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [esp + edi + 0x1b8]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [esp + ebx + 0x1b8]
mov byte [esp + edi + 0x1b8], al
mov byte [esp + ebx + 0x1b8], cl
movzx eax, byte [esp + edi + 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b8]
xor al, byte [esp + esi + 0x128]
mov byte [esp + esi + 0x430], al
inc esi
cmp esi, 0x2c
jb 0x43c14d
mov eax, dword [0x403a64]
xor ebx, ebx
mov dword [esp + 0x1a8], eax
mov edi, ebx
mov ax, word [0x403a68]
mov word [esp + 0x1ac], ax
mov eax, ebx
mov byte [esp + 0x45c], bl
mov dword [esp + 0x48], 0x5fdb2d72
mov word [esp + 0x4c], 0xa463
mov byte [esp + eax + 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x43c1d6
mov esi, ebx
xor edx, edx
mov bl, byte [esp + esi + 0x1b8]
push 5
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [esp + edx + 0x1a8]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b8]
mov byte [esp + esi + 0x1b8], al
inc esi
mov byte [esp + edi + 0x1b8], bl
cmp esi, 0x100
jb 0x43c1e7
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
push 6
mov cl, byte [esp + edi + 0x1bc]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [esp + ebx + 0x1bc]
mov byte [esp + edi + 0x1bc], al
mov byte [esp + ebx + 0x1bc], cl
movzx eax, byte [esp + edi + 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1bc]
xor al, byte [esp + esi + 0x4c]
mov byte [esp + esi + 0x338], al
inc esi
pop eax
cmp esi, eax
jb 0x43c22d
mov dword [esp + 0x14], 0x37
xor ebx, ebx
mov dword [esp + 0x18], 0x39
mov dword [esp + 0x1c], 0x29
mov dword [esp + 0x20], 0xffffff67
movups xmm1, xmmword [esp + 0x14]
mov dword [esp + 0x14], 0x25
mov dword [esp + 0x18], 0x3d
paddd xmm1, xmm2
mov dword [esp + 0x1c], 0x1c
movaps xmm0, xmm1
mov dword [esp + 0x20], 0xffffff82
psrldq xmm0, 8
paddd xmm1, xmm0
mov byte [esp + 0x33a], bl
movups xmm0, xmm1
mov dword [esp + 0x30], 0x1f
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x34], 0x4d
movups xmm0, xmmword [esp + 0x14]
push 0x60
movd eax, xmm1
movaps xmm1, xmm2
psubd xmm1, xmm0
mov dword [esp + 0x3c], 0xffffffec
movaps xmm0, xmm1
psrldq xmm0, 8
inc eax
paddd xmm1, xmm0
mov dword [esp + 0x2ec], eax
movups xmm0, xmm1
mov eax, ebx
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [esp + 0x2f0], xmm1
pop ecx
sub ecx, dword [esp + eax*4 + 0x30]
inc eax
cmp eax, 3
jl 0x43c33f
mov dword [esp + 0x2f0], ecx
lea edi, [esp + 0x128]
push 8
pop ecx
mov esi, 0x403a6c
mov dword [esp + 0xd0], 0xd655d33e
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xd4], 0x4e8fef7
mov eax, ebx
mov dword [esp + 0xd8], 0x6da0db4b
mov dword [esp + 0xdc], 0xe440f444
movsb byte es:[edi], byte [esi]
mov dword [esp + 0xe0], 0xe62ce828
mov edi, ebx
mov dword [esp + 0xe4], 0xb66d47e
mov dword [esp + 0xe8], 0xc4fefffc
mov dword [esp + 0xec], 0x362636b7
mov dword [esp + 0xf0], 0x92b4fc4f
mov dword [esp + 0xf4], 0xc94f531d
mov dword [esp + 0xf8], 0x242f90f9
mov byte [esp + eax + 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x43c3df
mov esi, ebx
mov dl, byte [esp + esi + 0x1b8]
mov eax, esi
and eax, 0x1f
movzx ecx, dl
movzx eax, byte [esp + eax + 0x128]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b8]
mov byte [esp + esi + 0x1b8], al
inc esi
mov byte [esp + edi + 0x1b8], dl
cmp esi, 0x100
jb 0x43c3f0
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
sub dword [esp + 0x28], 0x45a42972
movzx edi, al
mov cl, byte [esp + edi + 0x1b8]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [esp + ebx + 0x1b8]
mov byte [esp + edi + 0x1b8], al
mov byte [esp + ebx + 0x1b8], cl
movzx eax, byte [esp + edi + 0x1b8]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1b8]
xor al, byte [esp + esi + 0xd0]
mov byte [esp + esi + 0x88], al
inc esi
cmp esi, 0x2c
jb 0x43c430
mov esi, 0x403a90
mov dword [esp + 0x48], 0x3bd87458
lea edi, [esp + 0x14]
mov word [esp + 0x4c], 0xdb13
xor ebx, ebx
mov byte [esp + 0xb4], bl
mov eax, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, ebx
mov byte [esp + eax + 0x1b8], al
inc eax
cmp eax, 0x100
jb 0x43c4b6
mov esi, ebx
xor edx, edx
mov bl, byte [esp + esi + 0x1b8]
push 0x11
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [esp + edx + 0x14]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1b8]
mov byte [esp + esi + 0x1b8], al
inc esi
mov byte [esp + edi + 0x1b8], bl
cmp esi, 0x100
jb 0x43c4c7
xor ebx, ebx
mov edi, ebx
mov esi, ebx
mov edx, ebx
lea eax, [esi + 1]
mov ecx, ebx
movzx esi, al
mov al, byte [esp + esi + 0x1b8]
mov byte [esp + 0x13], al
movzx eax, al
mov dword [esp + 0x2c], eax
add eax, edi
movzx edi, al
mov eax, 0x403b20
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x184c
je 0x43c547
cmp word [eax], bx
jne 0x43c530
mov ecx, dword [esp + 0x28]
jmp 0x43c54f
imul ecx, dword [esp + 0x28], 0x286cb2e6
mov al, byte [esp + edi + 0x1b8]
or ecx, 0xa3e9baf2
mov byte [esp + esi + 0x1b8], al
add ecx, 0x166b1e0b
mov al, byte [esp + 0x13]
mov byte [esp + edi + 0x1b8], al
movzx eax, byte [esp + esi + 0x1b8]
add eax, dword [esp + 0x2c]
movzx eax, al
push 6
mov dword [esp + 0x2c], ecx
mov dword [0x44a7e8], ecx
mov al, byte [esp + eax + 0x1bc]
xor al, byte [esp + edx + 0x4c]
mov byte [esp + edx + 0x84], al
inc edx
pop eax
cmp edx, eax
jb 0x43c50c
push 5
mov byte [esp + 0x8a], bl
mov edx, ebx
mov dword [esp + 0x18], 0x44
mov eax, ebx
mov dword [esp + 0x1c], 0x16
mov dword [esp + 0x20], 0xd
mov dword [esp + 0x24], 0x59
mov dword [esp + 0x28], 0xffffff40
pop esi
sub edx, dword [esp + eax*4 + 0x14]
inc eax
cmp eax, esi
jl 0x43c5e1
push 0x4a
mov dword [esp + 0x300], edx
mov eax, ebx
pop edx
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x4c], 0xffffffa7
add edx, dword [esp + eax*4 + 0x48]
inc eax
cmp eax, 2
jl 0x43c606
push 0x14
pop eax
mov dword [esp + 0x1a8], edx
mov edx, ebx
mov dword [esp + 0x14], eax
mov eax, ebx
mov dword [esp + 0x18], 0xa
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 0x3c
mov dword [esp + 0x24], 0xffffffa1
sub edx, dword [esp + eax*4 + 0x14]
inc eax
cmp eax, esi
jl 0x43c63e
mov eax, dword [esp + 0x180]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x48], edx
cmp dword [ebp + 8], eax
jne 0x43c74c
push 0xb
mov dword [esp + 0x18], 0x2a
mov eax, ebx
mov dword [esp + 0x1c], 0x16
mov dword [esp + 0x20], 0x55
mov dword [esp + 0x24], 0x13
mov dword [esp + 0x28], 0xffffff62
pop edx
sub edx, dword [esp + eax*4 + 0x14]
xor ecx, 0x77f1f3cd
inc eax
cmp eax, esi
jl 0x43c693
mov dword [0x44a7e8], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x184], edx
call fcn.0041f07c
mov ecx, dword [esp + 0x184]
neg ecx
mov dword [esp + 0x28], eax
cmp eax, ecx
jne 0x43c74c
mov ecx, dword [0x44a7e8]
mov dword [esp + 0x48], 0x17
mov dword [esp + 0x4c], 0x5f
mov dword [esp + 0x50], 0xffffffb4
push 0x48
mov edx, 0x1483
mov eax, 0x403b38
pop esi
add edx, esi
inc eax
cmp edx, 0x214b
ja 0x43c70b
movsx esi, byte [eax]
test esi, esi
jne 0x43c6f7
jmp 0x43c711
and ecx, 0xe26c72b1
and ecx, 0x44724928
or ecx, 0x22090284
push ecx
push ecx
push ecx
call fcn.0043a9f0
mov edx, dword [esp + 0x64]
add esp, 0xc
sub edx, dword [esp + ebx*4 + 0x48]
inc ebx
mov dword [esp + 0x58], edx
cmp ebx, 3
jl 0x43c6ea
lea eax, [ecx - 0x4867a927]
mov dword [0x44a7e8], eax
mov eax, edx
jmp 0x43d3ea
mov eax, dword [esp + 0x300]
push 0x10
push dword [esp + 0x308]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x1c]
push eax
call fcn.0043423a
push 0x48
push dword [esp + 0x31c]
lea eax, [esp + 0x384]
push eax
call fcn.0043423a
add esp, 0x18
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x33c]
push eax
push dword [esp + 0x314]
push dword [esp + 0x31c]
push dword [esp + 0x324]
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0x470]
call fcn.0041d4c4
call eax
mov ecx, dword [esp + 0x2c]
call fcn.0041d3cf
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3b4], eax
push ecx
push dword [esp + 0x320]
lea ecx, [esp + 0x34c]
push dword [esp + 0x4c]
push eax
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0x4b8]
call fcn.0041d4c4
call eax
mov edx, dword [esp + 0x320]
xor eax, eax
push dword [esp + 0x324]
xor ecx, ecx
add edx, ebx
push dword [esp + 0x32c]
bts eax, edx
cmp edx, 0x20
push 8
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
mov dword [esp + 0x3c], eax
cmovae ecx, eax
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x33c]
cmp eax, dword [esp + 0x340]
mov eax, dword [esp + 0x2c8]
cmovne eax, dword [esp + 0x2cc]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x1c0]
cmp ecx, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
cmovne ecx, dword [esp + 0x1a4]
or eax, ecx
mov ecx, dword [esp + 0x1a8]
cmp dword [esp + 0x1ac], ecx
mov ecx, dword [esp + 0x1b0]
cmovne ecx, dword [esp + 0x1b4]
or eax, ecx
mov ecx, dword [esp + 0x198]
and ecx, 7
or eax, ecx
lea ecx, [esp + 0x35c]
push eax
push dword [esp + 0xdc]
push dword [esp + 0x3cc]
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0x3ec]
call fcn.0041d4c4
call eax
mov eax, dword [esp + 0x5c]
cmp dword [ebp + 8], eax
jne 0x43d0df
mov esi, dword [0x44a7e8]
mov ecx, ebx
mov dword [esp + 0x154], 0xadf3d7d0
mov dword [esp + 0x158], 0xf5d6acc6
mov dword [esp + 0x15c], 0x6996717c
mov dword [esp + 0x160], 0xb551f41d
mov dword [esp + 0x164], 0x4617773f
mov dword [esp + 0x168], 0x618fd97d
mov dword [esp + 0x16c], 0xa8732621
mov dword [esp + 0x170], 0x8340de35
mov dword [esp + 0x174], 0x7b1aba81
mov dword [esp + 0x178], 0x8f4ece7a
mov dword [esp + 0x17c], 0xb3c9cb04
mov dword [esp + 0x5c], 0x50545050
mov dword [esp + 0x60], 0x573030
mov dword [esp + 0x58], ebx
push 0x69
mov edi, 0x102f
mov eax, 0x403b90
pop edx
add edi, edx
inc eax
cmp edi, 0x269a
ja 0x43c98c
movsx edx, byte [eax]
test edx, edx
jne 0x43c972
add esi, 0x8270898
jmp 0x43c9ad
push ecx
push esi
push ecx
call fcn.0043a9f0
add esp, 8
xor esi, 0x3177e3b7
push esi
push ecx
call fcn.0043a9f0
add esp, 0xc
add esi, 0x19bc88a2
add esi, 0x371c4684
mov byte [esp + ecx + 0x1b8], cl
inc ecx
cmp ecx, 0x100
jb 0x43c965
xor ebx, ebx
mov edi, ebx
mov ecx, 0x403b90
mov al, 0x69
sub al, 0x30
cmp al, 9
ja 0x43c9dd
inc ecx
mov al, byte [ecx]
test al, al
jne 0x43c9ce
jmp 0x43c9e3
imul esi, esi, 0x17e75052
or esi, 0x2f98ac97
call fcn.0043a7f7
xor edx, edx
mov bl, byte [esp + edi + 0x1b8]
push 7
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [esp + edx + 0x5c]
add eax, dword [esp + 0x58]
add ecx, eax
movzx ecx, cl
mov dword [esp + 0x58], ecx
mov al, byte [esp + ecx + 0x1b8]
mov byte [esp + edi + 0x1b8], al
inc edi
mov byte [esp + ecx + 0x1b8], bl
cmp edi, 0x100
jb 0x43c9c7
xor ebx, ebx
mov dword [esp + 0x44], ebx
mov edi, ebx
mov dword [esp + 0x58], ebx
mov ecx, ebx
mov eax, 0x403b10
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x11ff
je 0x43ca57
cmp word [eax], bx
jne 0x43ca44
jmp 0x43ca5d
add esi, 0x2c4a4490
lea eax, [edi + 1]
and esi, 0xe2480c1f
movzx edi, al
or esi, 0xa2480c08
mov eax, ebx
inc eax
cmp eax, 0x24fd
jl 0x43ca83
cmp byte [eax + 0x403b90], bl
jne 0x43ca71
jmp 0x43ca90
add esi, 0x32df1844
cmp eax, 0xca
jle 0x43caa3
push ecx
push esi
push ecx
call fcn.0043a9f0
add esp, 0xc
add esi, 0xcbe04164
jmp 0x43caa9
and esi, 0x37873fd
imul esi, esi, 0x62c4f0b0
call fcn.0043a7f7
mov al, byte [esp + edi + 0x1b8]
mov edx, 0x283
movzx ecx, al
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x44]
add eax, ecx
mov dword [esp + 0x5c], ecx
movzx eax, al
push 0x6e
mov dword [esp + 0x48], eax
mov eax, 0x403b10
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x1444
ja 0x43caf6
movzx ecx, word [eax]
test ecx, ecx
jne 0x43cae0
jmp 0x43cb07
push ecx
and esi, 0xd725aeb
push esi
push ecx
call fcn.0043a9f0
add esp, 0xc
and esi, 0xc20432f4
push ecx
xor esi, 0x27f8e2ed
push esi
push ecx
call fcn.0043a9f0
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov edx, dword [esp + 0x58]
add esi, 0x3b4dc6e3
mov al, byte [esp + ecx + 0x1b8]
mov byte [esp + edi + 0x1b8], al
mov al, byte [esp + 0x13]
mov byte [esp + ecx + 0x1b8], al
movzx eax, byte [esp + edi + 0x1b8]
add eax, dword [esp + 0x5c]
movzx eax, al
mov al, byte [esp + eax + 0x1b8]
xor al, byte [esp + edx + 0x154]
mov byte [esp + edx + 0x400], al
inc edx
mov dword [esp + 0x58], edx
cmp edx, 0x2c
jb 0x43ca3d
mov dword [esp + 0x44], esi
lea edi, [esp + 0x68]
push 5
pop eax
mov ecx, eax
mov byte [esp + 0x42c], bl
mov esi, 0x403aa4
mov dword [esp + 0xc8], 0x710cba79
rep movsd dword es:[edi], dword [esi]
mov word [esp + 0xcc], 0x7ef6
mov eax, ebx
mov dword [esp + 0x58], ebx
movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x44]
xor esi, 0xfbddfa7d
and esi, 0x4c22b792
mov dword [esp + 0x44], esi
mov byte [esp + eax + 0x4f0], al
inc eax
cmp eax, 0x100
jb 0x43cbc2
mov edi, ebx
xor edx, edx
mov bl, byte [esp + edi + 0x4f0]
push 0x14
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [esp + edx + 0x68]
add eax, dword [esp + 0x58]
add ecx, eax
movzx ecx, cl
mov dword [esp + 0x58], ecx
mov al, byte [esp + ecx + 0x4f0]
mov byte [esp + edi + 0x4f0], al
inc edi
mov byte [esp + ecx + 0x4f0], bl
cmp edi, 0x100
jb 0x43cbd3
xor ebx, ebx
mov esi, ebx
mov edi, ebx
lea eax, [esi + 1]
movzx esi, al
push 6
mov cl, byte [esp + esi + 0x4f4]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [esp + ebx + 0x4f4]
mov byte [esp + esi + 0x4f4], al
mov byte [esp + ebx + 0x4f4], cl
movzx eax, byte [esp + esi + 0x4f4]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x4f4]
xor al, byte [esp + edi + 0xcc]
mov byte [esp + edi + 0x1b4], al
inc edi
pop eax
cmp edi, eax
jb 0x43cc1c
mov esi, dword [esp + 0x44]
xorps xmm1, xmm1
push 0x64
pop eax
mov dword [esp + 0x68], eax
xor ebx, ebx
mov dword [esp + 0x6c], eax
mov ecx, 0x403b90
mov dword [esp + 0x70], 0x57
mov eax, 0x258c
mov dword [esp + 0x74], 0xfffffee1
movups xmm0, xmmword [esp + 0x68]
push 0x69
mov byte [esp + 0x1ba], bl
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [esp + 0x190], xmm1
pop edx
add eax, edx
inc ecx
cmp eax, 0x1e5d
ja 0x43cce6
movsx edx, byte [ecx]
test edx, edx
jne 0x43ccd3
jmp 0x43ccec
or esi, 0xad098820
push 0x11
pop eax
add esi, 0xe7ce857e
mov dword [esp + 0x60], eax
or esi, 0x2aa424b7
mov dword [esp + 0x5c], 0x5a
mov ecx, ebx
mov dword [esp + 0x64], 0xffffff95
mov eax, ebx
sub ecx, dword [esp + eax*4 + 0x5c]
inc eax
cmp eax, 3
jl 0x43cd13
mov dword [esp + 0x68], 0x20
xorps xmm1, xmm1
mov dword [esp + 0x6c], 0x4a
mov eax, ebx
mov dword [esp + 0x70], 0x1f
mov dword [esp + 0x74], 0xffffff77
movups xmm0, xmmword [esp + 0x68]
push 0x5b
pop edx
psubd xmm1, xmm0
mov dword [esp + 0x194], ecx
movaps xmm0, xmm1
mov dword [esp + 0x5c], 0x1a
psrldq xmm0, 8
mov ecx, edx
paddd xmm1, xmm0
mov dword [esp + 0x60], 0x2d
movups xmm0, xmm1
mov dword [esp + 0x64], 0xff5e
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [esp + 0x198], xmm1
add ecx, dword [esp + eax*4 + 0x5c]
inc eax
cmp eax, 3
jl 0x43cd90
mov dword [esp + 0x190], ecx
mov edi, ebx
mov dword [esp + 0x5c], 0x3f
mov eax, ebx
mov dword [esp + 0x60], 0x25
mov dword [esp + 0x64], 0xffffff9c
sub edi, dword [esp + eax*4 + 0x5c]
inc eax
cmp eax, 3
jl 0x43cdbd
mov dword [esp + 0x68], 0x15
xorps xmm1, xmm1
mov dword [esp + 0x6c], 0x58
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], 0xffffff44
movups xmm0, xmmword [esp + 0x68]
push 0x56
mov dword [esp + 0x60], 0x63
psubd xmm1, xmm0
mov dword [esp + 0x64], 0xffffff47
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop ecx
add eax, 0xd
mov dword [esp + 0x1a4], eax
mov eax, ebx
add ecx, dword [esp + eax*4 + 0x5c]
inc eax
cmp eax, 2
jl 0x43ce2a
push 5
pop edx
mov dword [esp + 0x188], ecx
mov eax, ebx
mov ecx, 0x160000
mov dword [esp + 0x35c], edx
mov dword [esp + 0x360], 0x39
mov dword [esp + 0x364], 0x47
mov dword [esp + 0x368], 0x58
mov dword [esp + 0x36c], 0x13ff23
sub ecx, dword [esp + eax*4 + 0x35c]
inc eax
cmp eax, edx
jl 0x43ce78
push 0x21
mov dword [esp + 0x1a0], ecx
mov eax, ebx
mov dword [esp + 0x60], 0xe
mov dword [esp + 0x64], 0x2e
mov dword [esp + 0x68], 0xffffffa3
pop ecx
add ecx, dword [esp + eax*4 + 0x5c]
inc eax
cmp eax, 3
jl 0x43cea8
mov dword [esp + 0x1a0], ecx
mov eax, ebx
mov dword [esp + 0x68], 0x3c
mov ecx, 0x403b10
mov dword [esp + 0x6c], 0x4f
mov dword [esp + 0x70], 0x13
mov dword [esp + 0x74], 0xffffff1f
inc eax
lea ecx, [ecx + 2]
cmp eax, 0x159b
jl 0x43cef2
cmp word [ecx], bx
jne 0x43cee0
jmp 0x43cef8
or esi, 0xe8a4a3e2
add esi, 0x91909364
xor esi, 0xd7b54b26
call fcn.0043a7f7
movups xmm1, xmmword [esp + 0x68]
push 0x14
mov ecx, ebx
mov dword [esp + 0xd4], 0x39
movaps xmm0, xmm1
mov dword [esp + 0xd8], 0x1c
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0xdc], 0x3e
movups xmm0, xmm1
mov dword [esp + 0xe4], 0xffffff59
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x43
mov dword [esp + 0x60], eax
pop eax
push 5
mov dword [esp + 0xe0], eax
mov eax, ebx
pop edx
sub ecx, dword [esp + eax*4 + 0xd0]
inc eax
cmp eax, edx
jl 0x43cf6e
or esi, 0x3ff96339
mov dword [esp + 0xc8], ecx
mov dword [0x44a7e8], esi
mov eax, ebx
mov esi, 0x1c0000
mov dword [esp + 0x68], 0x29
mov dword [esp + 0x6c], 0x3e
mov dword [esp + 0x70], 0x17ff99
sub esi, dword [esp + eax*4 + 0x68]
inc eax
cmp eax, 3
jl 0x43cfac
push 0x4b
pop eax
mov dword [esp + 0x6c], eax
xorps xmm1, xmm1
mov dword [esp + 0x68], 0x64
mov edx, ebx
mov dword [esp + 0x70], 0x1e
mov dword [esp + 0x74], 0xffffff33
movups xmm0, xmmword [esp + 0x68]
mov dword [esp + 0x6c], eax
mov eax, ebx
mov dword [esp + 0x68], 0x14
psubd xmm1, xmm0
mov dword [esp + 0x70], 0xffffffa1
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
sub edx, dword [esp + eax*4 + 0x68]
inc eax
cmp eax, 3
jl 0x43d015
push 6
pop eax
mov dword [esp + 0x70], eax
xorps xmm1, xmm1
mov dword [esp + 0x68], 0x38
mov dword [esp + 0x6c], 0x29
mov dword [esp + 0x74], 0xffffff99
movups xmm0, xmmword [esp + 0x68]
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 eax
push edx
push 4
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0xd8]
mov eax, dword [esp + 0x198]
cmovne ecx, esi
cmp dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x1b0]
cmovne eax, dword [esp + 0x1ac]
or ecx, eax
mov eax, dword [esp + 0x1a8]
cmp dword [esp + 0x1a4], eax
cmovne edi, dword [esp + 0x1a0]
or ecx, edi
push ecx
push dword [esp + 0x1a0]
lea ecx, [esp + 0x1c8]
push dword [esp + 0x3cc]
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0x41c]
call fcn.0041d4c4
call eax
mov eax, dword [0x44a7e8]
lea ecx, [esp + 0x354]
xor eax, 0xc84bc208
mov dword [esp + 0x370], 0x48
add eax, 0x2775fd20
mov dword [0x44a7e8], eax
mov eax, dword [esp + 0x2c0]
or eax, 0x80000
mov dword [esp + 0x39c], eax
mov eax, dword [esp + 0x2c4]
mov word [esp + 0x3a0], ax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x374]
push eax
push dword [esp + 0x5c]
mov eax, dword [esp + 0x2d8]
push dword [esp + 0x2d4]
or eax, dword [esp + 0x2e0]
or eax, 0x8080000
push eax
push dword [esp + 0x2e8]
push dword [esp + 0x2f0]
push dword [esp + 0x2f8]
push dword [esp + 0x300]
push dword [esp + 0x308]
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0x124]
call fcn.0041d4c4
call eax
test eax, eax
jne 0x43d265
push 9
pop eax
push 0x52
mov dword [esp + 0x70], eax
mov eax, ebx
mov dword [esp + 0x6c], 8
mov dword [esp + 0x74], 0xffffff9e
pop edi
add edi, dword [esp + eax*4 + 0x68]
inc eax
cmp eax, 3
jl 0x43d1af
mov eax, ebx
mov ecx, 0x403b20
inc eax
lea ecx, [ecx + 2]
cmp eax, 0xec1
je 0x43d1df
cmp word [ecx], bx
jne 0x43d1c0
mov esi, dword [0x44a7e8]
cmp eax, 0x801
jg 0x43d1eb
jmp 0x43d1f0
mov esi, dword [0x44a7e8]
sub esi, 0x6229c3d7
call fcn.0043a7f7
mov ecx, dword [esp + 0x3b4]
xor esi, 0x310522a4
push 9
pop eax
mov dword [esp + 0x68], eax
add esi, 0x7deb606c
mov dword [esp + 0x6c], 0x38
mov dword [esp + 0x70], 0x42
mov dword [esp + 0x74], 0xffffff48
movups xmm1, xmmword [esp + 0x68]
mov dword [0x44a7e8], esi
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd esi, xmm1
call fcn.0041d467
cmp dword [ebp + 8], edi
jne 0x43d25d
push dword [esp + 0x28]
call fcn.0044900f
pop ecx
lea eax, [esi + 0x3a]
jmp 0x43d3ea
push dword [esp + 0x3b4]
lea ecx, [esp + 0x338]
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0x434]
call fcn.0041d4c4
call eax
mov ecx, dword [esp + 0x3b4]
call fcn.0041d467
mov eax, dword [esp + 0x2e8]
cmp dword [ebp + 8], eax
jne 0x43d2aa
push dword [esp + 0x28]
call fcn.0044900f
pop ecx
push dword [esp + 0x2ec]
lea eax, [esp + 0x12c]
push 0x18
push eax
push ebx
push dword [esp + 0x24]
call fcn.00448ff1
lea eax, [esp + 0x308]
push eax
push 4
lea eax, [esp + 0x19c]
push eax
mov eax, dword [esp + 0x14c]
add eax, dword [esp + 0x310]
push eax
push dword [esp + 0x38]
call fcn.00448fd3
mov edi, dword [esp + 0x1a8]
lea eax, [esp + 0x31c]
push eax
push 0x200
lea eax, [esp + 0x620]
push eax
push edi
push dword [esp + 0x4c]
call fcn.00448fd3
mov eax, dword [esp + 0x668]
add esp, 0x3c
mov ebx, dword [esp + 0x2f8]
mov ecx, ebx
mov esi, dword [esp + eax + 0x618]
add esi, edi
call fcn.004348b9
mov edx, eax
call fcn.0040c4b5
push dword [esp + 0x2fc]
lea ecx, [esp + 0x84]
push eax
push ebx
push esi
push dword [esp + 0x24]
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0x9c]
call fcn.0041d4c4
call eax
push dword [esp + 0x1a8]
xor dword [0x44a7e8], 0x35559665
push dword [esp + 0x1c]
call fcn.00448fb5
pop ecx
pop ecx
cmp eax, dword [esp + 0x48]
je 0x43d3cf
mov dword [esp + 0x14], 0x5e
mov dword [esp + 0x18], 0x1b
mov dword [esp + 0x1c], 0x57
mov dword [esp + 0x20], 0xfffffef9
movups xmm1, xmmword [esp + 0x14]
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x42
jmp 0x43d3ea
push dword [esp + 0x14]
call fcn.0044900f
push dword [esp + 0x1c]
call fcn.0044900f
mov eax, dword [esp + 0x310]
pop ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret