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

Disassembly:
sub esp, 0xc8
push ebx
push ebp
push esi
mov esi, dword [esp + 0xd8]
push edi
mov ecx, 8
lea edi, [esp + 0x3c]
mov dword [esp + 0x14], 0
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0xe0]
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov ecx, 8
lea edi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov ebx, eax
mov eax, dword [esp + 0x24]
xor ebx, esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0x30]
xor eax, ebp
mov ebp, dword [esp + 0x50]
xor edi, edx
mov edx, dword [esp + 0x4c]
xor ecx, esi
mov esi, dword [esp + 0x2c]
xor ebx, ebp
mov ebp, dword [esp + 0x58]
xor esi, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0xcc], ebx
mov ebx, dword [esp + 0x54]
xor edx, ebx
mov ebx, dword [esp + 0x38]
xor ebx, ebp
mov ebp, esi
mov dword [esp + 0xd4], ebx
mov ebx, edx
and ebp, 0xff
mov dword [esp + 0xd0], edx
shl ebx, 8
or ebp, ebx
mov ebx, eax
shl ebp, 8
and ebx, 0xff
and dl, 0
or ebp, ebx
mov ebx, edi
shl ebp, 8
and ebx, 0xff
or ebp, ebx
mov ebx, esi
shl edx, 8
and ebx, 0xff00
shr edi, 8
or edx, ebx
mov ebx, edi
shl edx, 8
and ebx, 0xff
mov dword [esp + 0x18], edi
or edx, ebx
mov ebx, eax
and ebx, 0xff00
and edi, 0xff00
or edx, ebx
mov ebx, eax
and ebx, 0xff0000
and eax, 0xff00ffff
or edi, ebx
mov ebx, dword [esp + 0xd0]
and ebx, 0xffff0000
shr edi, 8
shl ebx, 8
or edi, ebx
mov ebx, esi
and ebx, 0xff0000
and esi, 0xff0000ff
or edi, ebx
mov ebx, dword [esp + 0x18]
or eax, ebx
mov dword [esp + 0x94], edi
shr eax, 8
mov edi, dword [esp + 0xd4]
or eax, esi
mov esi, dword [esp + 0xd0]
mov ebx, edi
shr eax, 8
and esi, 0xff000000
or eax, esi
mov esi, dword [esp + 0xcc]
mov dword [esp + 0x98], eax
mov eax, esi
and eax, 0xff
shl ebx, 8
or eax, ebx
mov ebx, ecx
shl eax, 8
and ebx, 0xff
or eax, ebx
mov ebx, dword [esp + 0xbc]
shl eax, 8
and ebx, 0xff
or eax, ebx
mov ebx, esi
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xbc]
shr eax, 8
mov dword [esp + 0x10], eax
mov eax, edi
and al, 0
and ebx, 0xff00
shl eax, 8
or eax, ebx
mov ebx, dword [esp + 0x10]
shl eax, 8
and ebx, 0xff
or eax, ebx
mov ebx, ecx
and ebx, 0xff00
or eax, ebx
mov ebx, ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x10]
and eax, 0xff00
and ebx, 0xff0000
or eax, ebx
mov ebx, edi
and ebx, 0xffff0000
and ecx, 0xff00ffff
shr eax, 8
shl ebx, 8
or eax, ebx
mov ebx, esi
and ebx, 0xff0000
and esi, 0xff0000ff
or eax, ebx
and edi, 0xff000000
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x10]
or ecx, eax
mov eax, dword [esp + 0xdc]
shr ecx, 8
or ecx, esi
xor ebx, ebx
shr ecx, 8
or ecx, edi
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [eax + ecx*4]
xor ecx, ecx
lea eax, [edi + ebp]
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov esi, dword [ecx*4 + 0x46deac]
mov ecx, dword [ebx*4 + 0x46e2ac]
xor esi, ecx
mov ecx, eax
shr ecx, 0x18
and eax, 0xff
mov ebx, dword [ecx*4 + 0x46daac]
mov ecx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0xdc]
xor esi, ebx
xor esi, ecx
mov ecx, dword [esp + 0x14]
mov ebx, dword [eax + ecx*4 + 4]
xor ecx, ecx
xor esi, ebx
xor ebx, ebx
lea eax, [esi + edx]
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0x94]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
add eax, edi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0x98]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
add eax, esi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0x9c]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
add eax, edi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0xa0]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
add eax, esi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0xa4]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
add eax, edi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
and eax, 0xff
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0xa8]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
add eax, esi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
lea eax, [edi + ebp]
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
lea eax, [esi + edx]
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0x94]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
add eax, edi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0x98]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
add eax, esi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x46daac]
and eax, 0xff
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0x9c]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
add eax, edi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0xa0]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
add eax, esi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0xa4]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
add eax, edi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0xa8]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
add eax, esi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
lea eax, [edi + ebp]
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x46daac]
and eax, 0xff
mov ebx, dword [eax*4 + 0x46e6ac]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
lea eax, [esi + edx]
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0x94]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
add eax, edi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0x98]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
add eax, esi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0x9c]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
add eax, edi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0xa0]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
add eax, esi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
xor ecx, dword [eax*4 + 0x46e6ac]
xor edi, ecx
mov eax, dword [esp + 0xa4]
xor ecx, ecx
add eax, edi
xor ebx, ebx
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0xa8]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
add eax, esi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0xa8]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
add eax, edi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0xa4]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
add eax, esi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0xa0]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
add eax, edi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0x9c]
xor ecx, ebx
xor esi, ecx
add eax, esi
xor ecx, ecx
mov dword [esp + 0x10], eax
xor ebx, ebx
mov cl, byte [esp + 0x12]
mov bl, ah
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0x98]
xor ecx, ebx
xor ebx, ebx
xor edi, ecx
xor ecx, ecx
add eax, edi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
mov eax, dword [esp + 0x94]
xor ecx, ebx
xor ebx, ebx
xor esi, ecx
xor ecx, ecx
add eax, esi
mov dword [esp + 0x10], eax
mov bl, ah
mov cl, byte [esp + 0x12]
mov ecx, dword [ecx*4 + 0x46deac]
xor ecx, dword [ebx*4 + 0x46e2ac]
mov ebx, eax
shr ebx, 0x18
and eax, 0xff
xor ecx, dword [ebx*4 + 0x46daac]
mov ebx, dword [eax*4 + 0x46e6ac]
xor eax, eax
xor ecx, ebx
xor edi, ecx
xor ecx, ecx
add edx, edi
mov cl, dh
mov dword [esp + 0x10], edx
mov al, byte [esp + 0x12]
mov ebx, dword [ecx*4 + 0x46e2ac]
mov ecx, edx
mov eax, dword [eax*4 + 0x46deac]
and edx, 0xff
shr ecx, 0x18
xor eax, ebx
mov ebx, dword [ecx*4 + 0x46daac]
xor eax, ebx
mov ebx, dword [edx*4 + 0x46e6ac]
xor eax, ebx
xor edx, edx
xor esi, eax
xor ebx, ebx
lea ecx, [esi + ebp]
mov dword [esp + 0x10], ecx
mov bl, ch
mov dl, byte [esp + 0x12]
mov ebp, dword [ebx*4 + 0x46e2ac]
mov eax, dword [edx*4 + 0x46deac]
mov edx, ecx
shr edx, 0x18
xor eax, ebp
and ecx, 0xff
mov ebp, dword [edx*4 + 0x46daac]
mov edx, dword [ecx*4 + 0x46e6ac]
xor eax, ebp
xor eax, edx
xor eax, edi
mov ebx, dword [esp + 0x14]
cmp ebx, 6
mov dword [esp + ebx*4 + 0x5c], esi
mov dword [esp + ebx*4 + 0x60], eax
je 0x40da65
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x40]
mov eax, edx
xor eax, ecx
mov ecx, esi
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x54]
xor ecx, ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x58]
cmp ebx, 2
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
jne 0x40d9f3
mov edi, dword [esp + 0x48]
xor edx, 0xff00ff00
xor edi, 0xff00ff
xor esi, 0xff00ff00
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x4c]
xor edi, 0xffff00
xor ebp, 0xff00ff
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x50]
xor edi, 0xff0000ff
xor eax, 0xff
xor ecx, 0xff00ffff
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x14]
add ebx, 2
xor ecx, eax
xor eax, edi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x14]
xor ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x10]
xor ecx, eax
cmp ebx, 8
mov dword [esp + 0x38], ecx
jl 0x40cf2a
mov ebp, dword [esp + 0xe0]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov ebx, dword [esp + 0x5c]
mov eax, dword [ebp]
mov esi, dword [esp + 0x64]
xor eax, ecx
xor esi, ebx
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 4]
xor eax, edi
xor esi, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x60]
xor eax, ebx
mov edx, eax
mov dword [esp + 0x14], eax
xor edx, edi
and eax, 0xffff
mov dword [esp + 0x18], edx
shl esi, 0x10
shr edx, 0x10
xor esi, edx
mov edx, edi
xor esi, eax
mov eax, dword [ebp + 8]
and edx, 0xffff0000
xor esi, edx
mov edx, dword [esp + 0x68]
xor esi, eax
mov eax, dword [esp + 0x64]
xor edx, eax
mov eax, dword [esp + 0x60]
xor edx, eax
xor esi, ecx
xor edx, ebx
mov ebx, dword [esp + 0x64]
xor edx, edi
xor ebx, eax
xor edx, ecx
xor ebx, edi
xor ebx, ecx
mov eax, edx
shr ebx, 0x10
shl eax, 0x10
xor ebx, eax
mov eax, dword [esp + 0x18]
and eax, 0xffff
xor ebx, eax
mov eax, dword [ebp + 0xc]
mov ebp, dword [esp + 0x68]
xor ebx, eax
mov eax, dword [esp + 0x6c]
xor ebx, ecx
xor eax, ebp
mov ebp, dword [esp + 0x64]
xor eax, ebp
mov ebp, dword [esp + 0x5c]
xor eax, ebp
xor eax, edi
xor eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
and ecx, 0xffff0000
shl eax, 0x10
shr edx, 0x10
xor eax, edx
mov edx, dword [esp + 0xe0]
xor eax, ecx
mov ecx, edi
and ecx, 0xffff
xor eax, ecx
mov ecx, dword [edx + 0x10]
xor eax, ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
mov edx, eax
xor edx, ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x14], edx
xor edx, ecx
mov ecx, edx
xor ecx, ebp
mov ebp, dword [esp + 0x74]
xor ecx, edi
xor ecx, ebp
mov ebp, dword [esp + 0x5c]
xor ebp, edi
mov edi, dword [esp + 0x18]
shl ecx, 0x10
and ebp, 0xffff0000
xor ecx, ebp
shr edi, 0x10
xor ecx, edi
mov edi, dword [esp + 0x60]
and edi, 0xffff
xor ecx, edi
mov edi, dword [esp + 0xe0]
mov ebp, dword [edi + 0x14]
mov edi, dword [esp + 0x14]
xor ecx, ebp
mov ebp, dword [esp + 0x64]
xor ecx, ebp
xor edi, ebp
mov ebp, dword [esp + 0x78]
xor edi, ebp
mov ebp, dword [esp + 0x74]
xor edi, ebp
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x60]
xor edx, edi
xor edx, ebp
mov ebp, dword [esp + 0x14]
shr edx, 0x10
shl ebp, 0x10
xor edx, ebp
mov ebp, dword [esp + 0xe0]
xor edx, dword [ebp + 0x18]
mov ebp, dword [esp + 0x68]
xor edx, ebp
mov ebp, dword [esp + 0x5c]
xor edx, ebp
mov ebp, dword [esp + 0x74]
xor edx, ebp
mov ebp, dword [esp + 0x68]
xor eax, ebp
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x5c]
xor eax, edi
xor edi, ebp
xor eax, edx
and edi, 0xffff
xor eax, ebp
and edx, 0xffff0000
shl eax, 0x10
xor eax, edi
mov edi, dword [esp + 0x14]
shr edi, 0x10
xor eax, edi
mov edi, dword [esp + 0x6c]
xor eax, edx
mov edx, dword [esp + 0xe0]
mov ebp, dword [edx + 0x1c]
mov edx, dword [esp + 0x3c]
xor eax, ebp
mov ebp, dword [esp + 0x40]
xor eax, edi
mov edi, dword [esp + 0xdc]
mov dword [esp + 0x58], eax
mov eax, ebp
shl eax, 0x10
shr edx, 0x10
xor eax, edx
mov edx, dword [edi]
xor eax, edx
mov edx, esi
shl edx, 0x10
shr ebp, 0x10
xor edx, ebp
mov ebp, dword [edi + 4]
xor edx, ebp
mov ebp, ebx
shl ebp, 0x10
shr esi, 0x10
xor ebp, esi
mov esi, dword [edi + 8]
xor ebp, esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x24], ebp
mov ebp, esi
shl ebp, 0x10
shr ebx, 0x10
xor ebp, ebx
mov ebx, dword [edi + 0xc]
xor ebp, ebx
mov ebx, ecx
shl ebx, 0x10
shr esi, 0x10
xor ebx, esi
mov esi, dword [edi + 0x10]
xor ebx, esi
mov esi, dword [esp + 0x54]
mov dword [esp + 0x2c], ebx
mov ebx, esi
shl ebx, 0x10
shr ecx, 0x10
xor ebx, ecx
mov ecx, dword [edi + 0x14]
xor ebx, ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x30], ebx
mov ebx, esi
shl ecx, 0x10
shr ebx, 0x10
xor ecx, ebx
mov ebx, dword [edi + 0x18]
xor ecx, ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x40]
xor ebx, ecx
mov ecx, dword [esp + 0x3c]
xor ebx, ecx
mov ecx, dword [esp + 0x40]
xor esi, ecx
mov ecx, dword [esp + 0x3c]
xor esi, ecx
mov ecx, dword [esp + 0x58]
and ebx, 0xffff0000
mov dword [esp + 0x28], ebp
shl esi, 0x10
xor ebx, esi
mov esi, dword [esp + 0x34]
shr ecx, 0x10
xor ebx, ecx
mov ecx, dword [edi + 0x1c]
xor ebx, ecx
mov ecx, ebx
mov dword [esp + 0x38], ebx
xor ecx, esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x80], ecx
xor ecx, esi
mov esi, ecx
xor esi, ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0xb0], esi
xor esi, edx
mov dword [esp + 0x14], esi
mov esi, ebx
xor esi, ebp
mov ebp, dword [esp + 0x24]
xor esi, ebp
mov ebp, edx
xor ebp, eax
mov dword [esp + 0x84], esi
xor esi, eax
and ebp, 0xffff0000
mov dword [esp + 0xb4], esi
mov dword [esp + 0x7c], ebp
and ebx, 0xffff
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x14]
xor ebx, eax
shr ebx, 0x10
shl esi, 0x10
xor ebx, esi
mov esi, dword [esp + 0x10]
xor ebx, esi
xor ebx, ebp
mov ebp, dword [esp + 0x28]
mov esi, ebx
mov ebx, dword [esp + 0x30]
xor esi, ebx
mov dword [edi], esi
mov esi, dword [esp + 0x34]
xor esi, ebx
mov ebx, esi
xor ebx, ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x18], ebx
xor ebp, eax
xor ebx, eax
mov dword [esp + 0x88], ebp
shl ebx, 0x10
and ebp, 0xffff0000
xor ebx, ebp
mov ebp, ebx
mov ebx, dword [esp + 0xb4]
shr ebx, 0x10
xor ebp, ebx
mov ebx, edx
and ebx, 0xffff
xor ebp, ebx
mov ebx, dword [esp + 0x34]
xor ebp, ebx
mov ebx, dword [esp + 0x24]
xor ebp, ebx
mov ebx, dword [esp + 0x84]
xor ebx, edx
mov dword [edi + 4], ebp
xor ebx, eax
mov dword [esp + 0x84], ebx
mov ebp, ebx
mov ebx, dword [esp + 0x88]
shl ebp, 0x10
and ebx, 0xffff
xor ebp, ebx
mov ebx, dword [esp + 0x14]
shr ebx, 0x10
xor ebp, ebx
mov ebx, edx
and ebx, 0xffff0000
xor ebp, ebx
mov ebx, dword [esp + 0x34]
xor ebp, ebx
mov ebx, dword [esp + 0x28]
xor ebp, ebx
mov ebx, dword [esp + 0x18]
mov dword [edi + 8], ebp
mov ebp, dword [esp + 0x24]
xor ebx, ebp
xor ebx, eax
mov dword [esp + 0x88], ebx
mov ebp, ebx
mov ebx, dword [esp + 0x84]
shl ebp, 0x10
shr ebx, 0x10
xor ebp, ebx
mov ebx, dword [esp + 0x10]
xor ebp, ebx
mov ebx, dword [esp + 0x7c]
xor ebp, ebx
mov ebx, dword [esp + 0x2c]
xor ebp, ebx
mov ebx, dword [esp + 0x24]
xor ebp, ebx
mov ebx, dword [esp + 0x80]
mov dword [edi + 0xc], ebp
mov ebp, dword [esp + 0x2c]
xor ebx, ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x7c], ebx
xor ebx, ebp
xor ebx, edx
mov dword [esp + 0x80], ebx
mov ebp, ebx
mov ebx, dword [esp + 0x88]
shl ebp, 0x10
shr ebx, 0x10
xor ebp, ebx
mov ebx, dword [esp + 0x30]
xor ebp, ebx
mov ebx, dword [esp + 0x28]
xor ebp, ebx
mov ebx, dword [esp + 0x24]
xor ebp, ebx
xor ebp, edx
mov dword [edi + 0x10], ebp
mov ebp, dword [esp + 0x2c]
xor ecx, ebp
mov ebp, dword [esp + 0x38]
xor ecx, ebx
xor ebp, edx
xor ecx, edx
xor ebp, eax
xor ecx, eax
and ebp, 0xffff0000
shl ecx, 0x10
xor ecx, ebp
mov ebp, dword [esp + 0x80]
shr ebp, 0x10
xor ecx, ebp
mov ebp, dword [esp + 0x34]
xor ecx, ebp
mov ebp, dword [esp + 0x2c]
xor ecx, ebp
mov ebp, dword [esp + 0x28]
xor ecx, ebp
mov ebp, dword [esp + 0x2c]
xor ecx, ebx
xor esi, ebp
mov dword [edi + 0x14], ecx
mov ecx, dword [esp + 0xb0]
xor esi, ebx
shr esi, 0x10
shl ecx, 0x10
xor esi, ecx
mov ecx, dword [esp + 0x38]
xor esi, ecx
mov ecx, dword [esp + 0x34]
xor esi, ecx
mov ecx, dword [esp + 0x30]
xor esi, ecx
mov ecx, dword [esp + 0x28]
xor esi, ebp
xor esi, ecx
mov ecx, dword [esp + 0x7c]
xor esi, ebx
xor ecx, ebx
xor esi, eax
xor ecx, edx
mov dword [edi + 0x18], esi
mov esi, dword [esp + 0x18]
xor esi, edx
mov edx, dword [esp + 0x30]
xor esi, eax
shl ecx, 0x10
shr esi, 0x10
xor ecx, esi
mov esi, dword [esp + 0x38]
xor ecx, esi
mov esi, dword [esp + 0x28]
xor ecx, edx
xor ecx, ebp
xor ecx, esi
xor ecx, eax
mov dword [edi + 0x1c], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc8
ret