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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0xa0
mov esi, dword [eax + 0x38]
mov edi, dword [eax + 0x3c]
mov dword [esp + 0x6c], eax
mov ecx, dword [ebp + 8]
mov dword [esp + 0x58], edx
mov ebx, dword [ebp + 0xc]
mov eax, esi
mov dword [esp + 0x90], esi
or eax, edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
je 0x40a5b6
mov eax, 0x10
xor edx, edx
sub eax, esi
sbb edx, edi
cmp ecx, eax
mov edi, ebx
sbb edi, edx
mov edi, ecx
cmovae edi, eax
mov eax, edx
cmovb eax, ebx
mov dword [esp + 0x80], edi
mov esi, dword [esp + 0x80]
mov dword [esp + 0x84], eax
mov edi, dword [esp + 0x84]
mov eax, esi
or eax, edi
mov edx, edi
je 0x40a53d
mov eax, esi
mov ebx, 0xe
add eax, 0xffffffff
adc edx, 0xffffffff
xor ecx, ecx
cmp ebx, eax
sbb ecx, edx
jae 0x40b090
mov ebx, dword [esp + 0x90]
mov ecx, dword [esp + 0x58]
lea eax, [ebx + 0x40]
mov ebx, dword [esp + 0x6c]
add eax, ebx
mov ebx, ecx
add ebx, 1
mov edx, eax
sub edx, ebx
cmp edx, 0xe
jbe 0x40ad10
mov edx, ecx
or edx, eax
and edx, 0xf
jne 0x40ad10
movups xmm4, xmmword [ecx]
mov ebx, esi
xor ecx, ecx
and ebx, 0xfffffff0
movups xmmword [eax], xmm4
mov eax, esi
mov esi, ebx
movups xmmword [esp + 0x80], xmm4
mov dword [esp + 0x80], eax
and eax, 0xf
or eax, ecx
mov dword [esp + 0x84], edi
je 0x40a53d
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x6c]
movzx ebx, byte [ebx + esi]
add eax, esi
add eax, ecx
mov ecx, dword [esp + 0x80]
mov byte [eax + 0x40], bl
mov eax, 0x11
mov ebx, 0
cmp eax, ecx
sbb ebx, dword [esp + 0x84]
jae 0x40a53d
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x7c], edi
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x78], esi
mov eax, dword [esp + 0x90]
movzx edx, byte [ebx + 0x11]
mov ebx, dword [esp + 0x84]
add eax, ecx
mov ecx, dword [esp + 0x80]
mov byte [eax + 0x51], dl
mov eax, esi
mov edx, edi
add eax, 2
adc edx, 0
cmp eax, ecx
mov edi, edx
sbb edi, ebx
jae 0x40a53d
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x6c]
movzx ecx, byte [edi + eax]
add eax, dword [esp + 0x90]
add eax, ebx
mov ebx, dword [esp + 0x78]
mov byte [eax + 0x40], cl
mov eax, ebx
add eax, 3
movzx ecx, byte [edi + eax]
add eax, dword [esp + 0x90]
mov byte [esp + 0x78], cl
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x40], dl
mov eax, ebx
add eax, 4
movzx ecx, byte [edi + eax]
add eax, dword [esp + 0x90]
mov byte [esp + 0x78], cl
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x40], dl
mov eax, ebx
add eax, 5
movzx ecx, byte [edi + eax]
add eax, dword [esp + 0x90]
mov byte [esp + 0x78], cl
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x40], dl
mov eax, ebx
add eax, 6
movzx ecx, byte [edi + eax]
add eax, dword [esp + 0x90]
mov byte [esp + 0x78], cl
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x40], dl
mov eax, ebx
add eax, 7
movzx ecx, byte [edi + eax]
add eax, dword [esp + 0x90]
mov byte [esp + 0x78], cl
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x40], dl
mov eax, ebx
add eax, 8
movzx ecx, byte [edi + eax]
add eax, dword [esp + 0x90]
mov byte [esp + 0x78], cl
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x40], dl
mov eax, ebx
add eax, 9
movzx ecx, byte [edi + eax]
add eax, dword [esp + 0x90]
mov byte [esp + 0x78], cl
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x40], dl
mov eax, ebx
add eax, 0xa
movzx ecx, byte [edi + eax]
add eax, dword [esp + 0x90]
mov byte [esp + 0x78], cl
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x40], dl
mov eax, ebx
add eax, 0xb
movzx ecx, byte [edi + eax]
mov byte [esp + 0x78], cl
add eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x40], dl
mov eax, ebx
add eax, 0xc
movzx ecx, byte [edi + eax]
add eax, dword [esp + 0x90]
mov byte [esp + 0x78], cl
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x40], dl
mov eax, ebx
add eax, 0xd
movzx ecx, byte [edi + eax]
add eax, dword [esp + 0x90]
mov byte [esp + 0x78], cl
mov ecx, dword [esp + 0x6c]
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x40], dl
mov eax, ebx
add eax, 0xe
movzx ecx, byte [edi + eax]
add eax, dword [esp + 0x90]
mov edi, dword [esp + 0x6c]
add eax, edi
mov byte [eax + 0x40], cl
mov eax, dword [esp + 0x90]
mov ecx, 0xf
add eax, dword [esp + 0x80]
mov edx, dword [esp + 0x94]
adc edx, dword [esp + 0x84]
mov esi, eax
mov eax, dword [esp + 0x6c]
mov dword [eax + 0x38], esi
mov dword [eax + 0x3c], edx
xor eax, eax
cmp ecx, esi
sbb eax, edx
jb 0x40a580
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
sub dword [esp + 0x20], ebx
sbb dword [esp + 0x24], esi
mov eax, edi
add dword [esp + 0x58], ebx
lea edx, [edi + 0x40]
call fcn.00409b70
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov esi, dword [esp + 0x20]
mov eax, 0xf
mov edi, dword [esp + 0x24]
cmp eax, esi
mov eax, 0
sbb eax, edi
jb 0x40a618
mov eax, esi
or eax, edi
je 0x40a572
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x20]
movzx eax, byte [eax]
mov byte [edi + 0x40], al
mov edi, dword [esp + 0x24]
mov eax, esi
xor eax, 1
or eax, edi
jne 0x40b0fe
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], edx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x6c]
and esi, 0xfffffff0
xor eax, eax
mov dword [esp + 0xc], edi
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 8], esi
mov dword [esp + 0x60], esi
cmp byte [ebx + 0x50], 0
sete al
shl eax, 0x18
mov dword [esp + 0x1c], eax
mov eax, ebx
mov ebx, dword [ebx]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x70], ebx
mov ebx, dword [eax + 4]
mov dword [esp + 0x54], ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x68], ebx
lea ebx, [ebx + ebx*4]
mov dword [esp + 0x14], ebx
lea ebx, [ecx + ecx*4]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x48], ebx
lea ebx, [edx + edx*4]
mov dword [esp + 0x18], eax
lea eax, [eax + eax*4]
mov dword [esp + 0x50], ebx
mov edx, dword [ecx + 0x1c]
mov dword [esp + 0x5c], eax
mov ebx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x78], edx
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov esi, edx
mov dword [esp + 0x74], ecx
mov edx, dword [edi]
mov ecx, dword [esp + 0x1c]
and edx, 0x3ffffff
add ebx, edx
mov edx, dword [edi + 3]
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x78]
shr edx, 2
and edx, 0x3ffffff
add eax, edx
mov dword [esp + 0x80], eax
mov eax, dword [edi + 6]
shr eax, 4
and eax, 0x3ffffff
add ebx, eax
mov eax, dword [edi + 9]
mov dword [esp + 0x78], ebx
shr eax, 6
add esi, eax
mov eax, dword [edi + 0xc]
shr eax, 8
or eax, ecx
mov ecx, dword [esp + 0x74]
add ecx, eax
mov eax, dword [esp + 0x80]
mul dword [esp + 0x5c]
mov dword [esp + 0x74], ecx
mov ecx, eax
mov eax, dword [esp + 0x48]
mov ebx, edx
mul esi
add ecx, eax
mov eax, dword [esp + 0x90]
adc ebx, edx
mul dword [esp + 0x70]
add ecx, eax
mov eax, dword [esp + 0x78]
adc ebx, edx
mul dword [esp + 0x50]
add ecx, eax
mov eax, dword [esp + 0x74]
adc ebx, edx
mul dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x90]
adc ebx, edx
mov dword [esp + 0x40], ecx
mul dword [esp + 0x68]
mov dword [esp + 0x44], ebx
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0x80]
mul dword [esp + 0x70]
add ecx, eax
mov eax, dword [esp + 0x50]
adc ebx, edx
mul esi
add ecx, eax
mov eax, dword [esp + 0x78]
adc ebx, edx
mul dword [esp + 0x5c]
add ecx, eax
mov eax, dword [esp + 0x74]
adc ebx, edx
mul dword [esp + 0x48]
add ecx, eax
mov dword [esp + 0x38], ecx
adc ebx, edx
mov eax, dword [esp + 0x90]
mul dword [esp + 0x54]
mov dword [esp + 0x3c], ebx
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0x80]
mul dword [esp + 0x68]
add ecx, eax
mov eax, dword [esp + 0x78]
adc ebx, edx
mul dword [esp + 0x70]
add ecx, eax
mov eax, dword [esp + 0x5c]
adc ebx, edx
mul esi
add ecx, eax
mov eax, dword [esp + 0x74]
adc ebx, edx
mul dword [esp + 0x50]
add ecx, eax
mov eax, dword [esp + 0x90]
adc ebx, edx
mov dword [esp + 0x30], ecx
mul dword [esp + 0x4c]
mov dword [esp + 0x34], ebx
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0x80]
mul dword [esp + 0x54]
add ecx, eax
mov eax, dword [esp + 0x70]
adc ebx, edx
mul esi
add ecx, eax
mov eax, dword [esp + 0x78]
adc ebx, edx
mul dword [esp + 0x68]
add ecx, eax
mov eax, dword [esp + 0x74]
adc ebx, edx
mul dword [esp + 0x5c]
add ecx, eax
mov eax, dword [esp + 0x90]
adc ebx, edx
mov dword [esp + 0x28], ecx
mul dword [esp + 0x18]
mov dword [esp + 0x2c], ebx
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0x80]
mul dword [esp + 0x4c]
add ecx, eax
mov eax, esi
adc ebx, edx
mul dword [esp + 0x68]
add ecx, eax
mov eax, dword [esp + 0x78]
adc ebx, edx
mul dword [esp + 0x54]
add ecx, eax
mov eax, dword [esp + 0x74]
adc ebx, edx
mul dword [esp + 0x70]
add eax, ecx
adc edx, ebx
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov ecx, ebx
and ecx, 0x3ffffff
shrd ebx, esi, 0x1a
mov dword [esp + 0x90], ecx
mov ecx, ebx
xor ebx, ebx
add ecx, dword [esp + 0x38]
adc ebx, dword [esp + 0x3c]
mov esi, ecx
and esi, 0x3ffffff
mov dword [esp + 0x80], esi
mov esi, ebx
mov ebx, ecx
shrd ebx, esi, 0x1a
mov ecx, ebx
xor ebx, ebx
add ecx, dword [esp + 0x30]
adc ebx, dword [esp + 0x34]
mov esi, ecx
and esi, 0x3ffffff
shrd ecx, ebx, 0x1a
xor ebx, ebx
add ecx, dword [esp + 0x28]
adc ebx, dword [esp + 0x2c]
mov dword [esp + 0x78], esi
mov esi, ecx
shrd ecx, ebx, 0x1a
and esi, 0x3ffffff
xor ebx, ebx
add ecx, eax
mov eax, dword [esp + 0x90]
adc ebx, edx
mov edx, ecx
add edi, 0x10
shrd ecx, ebx, 0x1a
and edx, 0x3ffffff
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x74], edx
lea edx, [ecx + eax]
mov eax, dword [esp + 0x80]
mov ebx, edx
shr edx, 0x1a
and ebx, 0x3ffffff
add eax, edx
add dword [esp + 0x60], 0xfffffff0
adc dword [esp + 0x64], 0xffffffff
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
or edx, ecx
jne 0x40a6a0
mov dword [esp + 0x90], esi
mov ecx, dword [esp + 0x74]
movss xmm2, dword [esp + 0x90]
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x6c]
movss xmm0, dword [esp + 0x90]
mov dword [esp + 0x90], eax
movss xmm1, dword [esp + 0x78]
movss xmm3, dword [esp + 0x90]
mov dword [ebx + 0x24], ecx
unpcklps xmm1, xmm2
mov ecx, dword [esp + 8]
unpcklps xmm0, xmm3
sub dword [esp + 0x20], ecx
movlhps xmm0, xmm1
mov esi, dword [esp + 0x20]
movups xmmword [ebx + 0x14], xmm0
mov ebx, dword [esp + 0xc]
sbb dword [esp + 0x24], ebx
mov edi, dword [esp + 0x24]
mov eax, esi
or eax, edi
mov edx, edi
je 0x40a572
add dword [esp + 0x58], ecx
mov eax, esi
mov ecx, 0xe
add eax, 0xffffffff
adc edx, 0xffffffff
mov ebx, eax
mov dword [esp + 0x90], eax
xor eax, eax
cmp ecx, ebx
mov dword [esp + 0x94], edx
sbb eax, dword [esp + 0x94]
jae 0x40a5d4
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x58]
lea eax, [ebx + 0x40]
add ecx, 1
mov edx, eax
sub edx, ecx
cmp edx, 0xe
jbe 0x40af58
mov ecx, dword [esp + 0x58]
or eax, ecx
test al, 0xf
jne 0x40af58
movups xmm6, xmmword [ecx]
mov ecx, esi
mov eax, esi
and ecx, 0xfffffff0
and eax, 0xf
movups xmmword [esp + 0x90], xmm6
mov dword [esp + 0x90], ecx
xor ecx, ecx
or eax, ecx
movups xmmword [ebx + 0x40], xmm6
mov dword [esp + 0x94], edi
je 0x40a5f7
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x90]
movzx edx, byte [edx + eax]
mov eax, dword [esp + 0x6c]
add eax, ebx
mov byte [eax + 0x40], dl
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
add eax, 1
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 2
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 3
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 4
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 5
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 6
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 7
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 8
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 9
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 0xa
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 0xb
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 0xc
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 0xd
adc edx, 0
cmp eax, esi
mov ecx, eax
sbb edx, edi
jae 0x40a5f7
mov eax, dword [esp + 0x58]
mov ebx, ecx
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x6c]
add ebx, eax
mov eax, dword [esp + 0x90]
mov byte [ebx + 0x40], dl
mov edx, dword [esp + 0x94]
add eax, 0xe
adc edx, 0
cmp eax, esi
mov ebx, edx
sbb ebx, edi
jae 0x40a5f7
mov edi, dword [esp + 0x58]
mov ebx, eax
movzx edx, byte [edi + eax]
mov edi, ebx
mov eax, dword [esp + 0x6c]
add edi, eax
mov byte [edi + 0x40], dl
jmp 0x40a5f7
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x90]
mov ecx, dword [esp + 0x6c]
movzx edx, byte [edi]
mov eax, ebx
add eax, ecx
mov byte [eax + 0x40], dl
movzx edx, byte [edi + 1]
mov eax, ebx
add eax, ecx
mov byte [eax + 0x41], dl
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x80]
movzx edx, byte [eax + 2]
lea eax, [edi + ecx]
mov edi, dword [esp + 0x84]
mov byte [eax + 0x42], dl
mov eax, esi
xor eax, 3
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 3]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x43], dl
mov eax, esi
xor eax, 4
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 4]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x44], dl
mov eax, esi
xor eax, 5
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 5]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x45], dl
mov eax, esi
xor eax, 6
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 6]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x46], dl
mov eax, esi
xor eax, 7
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 7]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x47], dl
mov eax, esi
xor eax, 8
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 8]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x48], dl
mov eax, esi
xor eax, 9
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 9]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x49], dl
mov eax, esi
xor eax, 0xa
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 0xa]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x4a], dl
mov eax, esi
xor eax, 0xb
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 0xb]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x4b], dl
mov eax, esi
xor eax, 0xc
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 0xc]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x4c], dl
mov eax, esi
xor eax, 0xd
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 0xd]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x4d], dl
mov eax, esi
xor eax, 0xe
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 0xe]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x78]
add eax, ecx
mov byte [eax + 0x4e], dl
mov eax, esi
xor eax, 0xf
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
movzx edx, byte [eax + 0xf]
mov eax, dword [esp + 0x6c]
add eax, ecx
mov byte [eax + 0x4f], dl
jmp 0x40a53d
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x6c]
movzx eax, byte [edi]
mov byte [esi + 0x40], al
movzx eax, byte [edi + 1]
mov byte [esi + 0x41], al
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
movzx eax, byte [ebx + 2]
mov byte [ecx + 0x42], al
mov eax, esi
xor eax, 3
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 3]
mov byte [ecx + 0x43], al
mov eax, esi
xor eax, 4
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 4]
mov byte [ecx + 0x44], al
mov eax, esi
xor eax, 5
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 5]
mov byte [ecx + 0x45], al
mov eax, esi
xor eax, 6
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 6]
mov byte [ecx + 0x46], al
mov eax, esi
xor eax, 7
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 7]
mov byte [ecx + 0x47], al
mov eax, esi
xor eax, 8
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 8]
mov byte [ecx + 0x48], al
mov eax, esi
xor eax, 9
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 9]
mov byte [ecx + 0x49], al
mov eax, esi
xor eax, 0xa
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 0xa]
mov byte [ecx + 0x4a], al
mov eax, esi
xor eax, 0xb
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 0xb]
mov byte [ecx + 0x4b], al
mov eax, esi
xor eax, 0xc
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
mov eax, esi
xor eax, 0xd
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 0xd]
mov byte [ecx + 0x4d], al
mov eax, esi
xor eax, 0xe
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 0xe]
mov byte [ecx + 0x4e], al
mov eax, esi
xor eax, 0xf
or eax, edi
je 0x40a5f7
movzx eax, byte [ebx + 0xf]
mov byte [ecx + 0x4f], al
jmp 0x40a5f7
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x80]
movzx edx, byte [eax]
mov eax, dword [esp + 0x6c]
add eax, edi
mov edi, dword [esp + 0x84]
mov byte [eax + 0x40], dl
mov eax, esi
xor eax, 1
or eax, edi
je 0x40a53d
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x90]
movzx edx, byte [eax + 1]
mov eax, dword [esp + 0x6c]
add eax, edi
mov byte [eax + 0x41], dl
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
test edx, edx
jne 0x40ad34
cmp eax, 2
jne 0x40ad34
jmp 0x40a53d
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x24]
movzx eax, byte [eax + 1]
mov byte [edi + 0x41], al
mov eax, dword [esp + 0x20]
test edx, edx
jne 0x40af6d
cmp eax, 2
jne 0x40af6d
jmp 0x40a5f7