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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov edx, dword [ebp + 8]
xor eax, eax
push ebx
push esi
mov ah, byte [edx + 4]
mov esi, dword [ebp + 0x10]
mov al, byte [edx + 5]
push edi
movzx ecx, byte [edx + 6]
shl eax, 8
or eax, ecx
mov edi, dword [esi + 0x7c]
movzx ecx, byte [edx + 7]
shl eax, 8
or eax, ecx
mov ecx, dword [esi + 0x78]
mov dword [ebp - 4], eax
push 0x20
add eax, ecx
pop ecx
sub ecx, edi
mov ebx, eax
shr ebx, cl
mov ecx, edi
mov edi, 0xff
shl eax, cl
push 0x20
or ebx, eax
xor eax, eax
mov dword [ebp + 8], ebx
mov ecx, ebx
mov al, byte [ebp + 0xa]
shr ecx, 0x18
mov eax, dword [eax*4 + 0x411678]
xor eax, dword [ecx*4 + 0x411278]
xor ecx, ecx
mov cl, bh
and ebx, edi
sub eax, dword [ecx*4 + 0x411a78]
xor ecx, ecx
mov ch, byte [edx]
add eax, dword [ebx*4 + 0x411e78]
mov cl, byte [edx + 1]
movzx ebx, byte [edx + 2]
movzx edx, byte [edx + 3]
shl ecx, 8
or ecx, ebx
mov ebx, dword [esi + 0x70]
shl ecx, 8
or ecx, edx
mov edx, dword [esi + 0x74]
xor eax, ecx
pop ecx
sub ebx, eax
sub ecx, edx
mov edx, ebx
push 0x20
shr edx, cl
mov ecx, dword [esi + 0x74]
shl ebx, cl
xor ecx, ecx
or edx, ebx
mov dword [ebp + 8], edx
mov ebx, edx
mov cl, byte [ebp + 0xa]
shr ebx, 0x18
mov ecx, dword [ecx*4 + 0x411678]
add ecx, dword [ebx*4 + 0x411278]
xor ebx, ebx
mov bl, dh
and edx, edi
xor ecx, dword [ebx*4 + 0x411a78]
mov ebx, dword [esi + 0x68]
sub ecx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0x6c]
xor dword [ebp - 4], ecx
pop ecx
xor ebx, dword [ebp - 4]
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [esi + 0x6c]
push 0x20
shl ebx, cl
xor ecx, ecx
or edx, ebx
xor ebx, ebx
mov bl, dh
mov dword [ebp + 8], edx
mov cl, byte [ebp + 0xa]
mov ebx, dword [ebx*4 + 0x411a78]
sub ebx, dword [ecx*4 + 0x411678]
mov ecx, edx
shr ecx, 0x18
and edx, edi
add ebx, dword [ecx*4 + 0x411278]
mov ecx, dword [esi + 0x60]
xor ebx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0x64]
xor eax, ebx
lea ebx, [ecx + eax]
pop ecx
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [esi + 0x64]
push 0x20
shl ebx, cl
xor ecx, ecx
or edx, ebx
mov dword [ebp + 8], edx
mov ebx, edx
mov cl, byte [ebp + 0xa]
shr ebx, 0x18
mov ecx, dword [ecx*4 + 0x411678]
xor ecx, dword [ebx*4 + 0x411278]
xor ebx, ebx
mov bl, dh
and edx, edi
sub ecx, dword [ebx*4 + 0x411a78]
mov ebx, dword [esi + 0x58]
add ecx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0x5c]
xor dword [ebp - 4], ecx
pop ecx
sub ebx, dword [ebp - 4]
sub ecx, edx
push 0x20
mov edx, ebx
shr edx, cl
mov ecx, dword [esi + 0x5c]
shl ebx, cl
xor ecx, ecx
or edx, ebx
mov dword [ebp + 8], edx
mov ebx, edx
mov cl, byte [ebp + 0xa]
shr ebx, 0x18
mov ecx, dword [ecx*4 + 0x411678]
add ecx, dword [ebx*4 + 0x411278]
xor ebx, ebx
mov bl, dh
and edx, edi
xor ecx, dword [ebx*4 + 0x411a78]
mov ebx, dword [esi + 0x50]
sub ecx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0x54]
xor eax, ecx
pop ecx
xor ebx, eax
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [esi + 0x54]
shl ebx, cl
xor ecx, ecx
or edx, ebx
xor ebx, ebx
mov bl, dh
mov dword [ebp + 8], edx
mov cl, byte [ebp + 0xa]
mov ebx, dword [ebx*4 + 0x411a78]
sub ebx, dword [ecx*4 + 0x411678]
mov ecx, edx
shr ecx, 0x18
and edx, edi
push 0x20
add ebx, dword [ecx*4 + 0x411278]
mov ecx, dword [esi + 0x48]
xor ebx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0x4c]
xor dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
add ebx, ecx
pop ecx
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [esi + 0x4c]
push 0x20
shl ebx, cl
xor ecx, ecx
or edx, ebx
mov dword [ebp + 8], edx
mov ebx, edx
mov cl, byte [ebp + 0xa]
shr ebx, 0x18
mov ecx, dword [ecx*4 + 0x411678]
xor ecx, dword [ebx*4 + 0x411278]
xor ebx, ebx
mov bl, dh
and edx, edi
sub ecx, dword [ebx*4 + 0x411a78]
mov ebx, dword [esi + 0x40]
add ecx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0x44]
xor eax, ecx
pop ecx
sub ebx, eax
sub ecx, edx
mov edx, ebx
push 0x20
shr edx, cl
mov ecx, dword [esi + 0x44]
shl ebx, cl
xor ecx, ecx
or edx, ebx
mov dword [ebp + 8], edx
mov ebx, edx
mov cl, byte [ebp + 0xa]
shr ebx, 0x18
mov ecx, dword [ecx*4 + 0x411678]
add ecx, dword [ebx*4 + 0x411278]
xor ebx, ebx
mov bl, dh
and edx, edi
xor ecx, dword [ebx*4 + 0x411a78]
mov ebx, dword [esi + 0x38]
sub ecx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0x3c]
xor dword [ebp - 4], ecx
pop ecx
xor ebx, dword [ebp - 4]
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [esi + 0x3c]
shl ebx, cl
xor ecx, ecx
or edx, ebx
xor ebx, ebx
mov dword [ebp + 8], edx
mov bl, dh
mov cl, byte [ebp + 0xa]
mov ebx, dword [ebx*4 + 0x411a78]
sub ebx, dword [ecx*4 + 0x411678]
mov ecx, edx
shr ecx, 0x18
and edx, edi
add ebx, dword [ecx*4 + 0x411278]
xor ebx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0x34]
xor eax, ebx
mov ecx, dword [esi + 0x30]
push 0x20
lea ebx, [ecx + eax]
pop ecx
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [esi + 0x34]
push 0x20
shl ebx, cl
xor ecx, ecx
or edx, ebx
mov dword [ebp + 8], edx
mov ebx, edx
mov cl, byte [ebp + 0xa]
shr ebx, 0x18
mov ecx, dword [ecx*4 + 0x411678]
xor ecx, dword [ebx*4 + 0x411278]
xor ebx, ebx
mov bl, dh
and edx, edi
sub ecx, dword [ebx*4 + 0x411a78]
mov ebx, dword [esi + 0x28]
add ecx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0x2c]
xor dword [ebp - 4], ecx
pop ecx
sub ebx, dword [ebp - 4]
sub ecx, edx
push 0x20
mov edx, ebx
shr edx, cl
mov ecx, dword [esi + 0x2c]
shl ebx, cl
xor ecx, ecx
or edx, ebx
mov dword [ebp + 8], edx
mov ebx, edx
mov cl, byte [ebp + 0xa]
shr ebx, 0x18
mov ecx, dword [ecx*4 + 0x411678]
add ecx, dword [ebx*4 + 0x411278]
xor ebx, ebx
mov bl, dh
and edx, edi
xor ecx, dword [ebx*4 + 0x411a78]
mov ebx, dword [esi + 0x20]
sub ecx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0x24]
xor eax, ecx
pop ecx
xor ebx, eax
sub ecx, edx
mov edx, ebx
push 0x20
shr edx, cl
mov ecx, dword [esi + 0x24]
shl ebx, cl
xor ecx, ecx
or edx, ebx
xor ebx, ebx
mov dword [ebp + 8], edx
mov bl, dh
mov cl, byte [ebp + 0xa]
mov ebx, dword [ebx*4 + 0x411a78]
sub ebx, dword [ecx*4 + 0x411678]
mov ecx, edx
shr ecx, 0x18
and edx, edi
add ebx, dword [ecx*4 + 0x411278]
mov ecx, dword [esi + 0x18]
xor ebx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0x1c]
xor dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
add ebx, ecx
pop ecx
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [esi + 0x1c]
shl ebx, cl
xor ecx, ecx
push 0x20
or edx, ebx
mov dword [ebp + 8], edx
mov ebx, edx
mov cl, byte [ebp + 0xa]
shr ebx, 0x18
mov ecx, dword [ecx*4 + 0x411678]
xor ecx, dword [ebx*4 + 0x411278]
xor ebx, ebx
mov bl, dh
and edx, edi
sub ecx, dword [ebx*4 + 0x411a78]
mov ebx, dword [esi + 0x10]
add ecx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0x14]
xor eax, ecx
pop ecx
sub ebx, eax
sub ecx, edx
mov edx, ebx
push 0x20
shr edx, cl
mov ecx, dword [esi + 0x14]
shl ebx, cl
xor ecx, ecx
or edx, ebx
mov dword [ebp + 8], edx
mov ebx, edx
mov cl, byte [ebp + 0xa]
shr ebx, 0x18
mov ecx, dword [ecx*4 + 0x411678]
add ecx, dword [ebx*4 + 0x411278]
xor ebx, ebx
mov bl, dh
and edx, edi
xor ecx, dword [ebx*4 + 0x411a78]
mov ebx, dword [esi + 8]
sub ecx, dword [edx*4 + 0x411e78]
mov edx, dword [esi + 0xc]
xor dword [ebp - 4], ecx
pop ecx
xor ebx, dword [ebp - 4]
sub ecx, edx
push 0x20
mov edx, ebx
shr edx, cl
mov ecx, dword [esi + 0xc]
shl ebx, cl
xor ecx, ecx
or edx, ebx
xor ebx, ebx
mov dword [ebp + 8], edx
mov bl, dh
mov cl, byte [ebp + 0xa]
mov ebx, dword [ebx*4 + 0x411a78]
sub ebx, dword [ecx*4 + 0x411678]
mov ecx, edx
shr ecx, 0x18
and edx, edi
add ebx, dword [ecx*4 + 0x411278]
mov ecx, dword [esi]
xor ebx, dword [edx*4 + 0x411e78]
xor eax, ebx
mov ebx, dword [esi + 4]
lea esi, [ecx + eax]
pop ecx
sub ecx, ebx
mov edx, esi
shr edx, cl
mov ecx, ebx
shl esi, cl
xor ecx, ecx
or edx, esi
mov dword [ebp + 8], edx
mov esi, edx
mov cl, byte [ebp + 0xa]
shr esi, 0x18
mov ecx, dword [ecx*4 + 0x411678]
xor ecx, dword [esi*4 + 0x411278]
xor ebx, ebx
mov bl, dh
and edx, edi
pop edi
pop esi
sub ecx, dword [ebx*4 + 0x411a78]
add ecx, dword [edx*4 + 0x411e78]
mov edx, dword [ebp - 4]
xor edx, ecx
mov ecx, dword [ebp + 0xc]
mov ebx, edx
shr ebx, 0x18
mov byte [ecx], bl
mov ebx, edx
shr ebx, 0x10
mov byte [ecx + 1], bl
mov ebx, edx
mov byte [ecx + 3], dl
mov edx, eax
shr edx, 0x18
mov byte [ecx + 4], dl
mov edx, eax
shr edx, 0x10
mov byte [ecx + 5], dl
mov edx, eax
shr ebx, 8
shr edx, 8
mov byte [ecx + 2], bl
mov byte [ecx + 6], dl
mov byte [ecx + 7], al
pop ebx
leave
ret