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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 1]
push ebx
push esi
movzx esi, byte [eax]
shl esi, 0x18
inc eax
shl ecx, 0x10
or esi, ecx
xor edx, edx
mov dh, byte [eax + 1]
inc eax
movzx ecx, byte [eax + 1]
push edi
or esi, edx
inc eax
movzx edi, byte [eax + 1]
or esi, ecx
inc eax
movzx edx, byte [eax + 1]
shl edi, 0x18
inc eax
shl edx, 0x10
or edi, edx
inc eax
xor ecx, ecx
mov ch, byte [eax]
mov cl, byte [eax + 1]
mov eax, dword [ebp + 0x14]
or edi, ecx
test eax, eax
mov eax, dword [ebp + 0x10]
je 0x40c951
mov ecx, dword [eax]
lea ebx, [ecx + edi]
mov edx, dword [eax + 0x40]
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x40]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov ebx, edx
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x4393e0]
movzx ebx, dh
sub ecx, dword [ebx*4 + 0x439be0]
mov dword [ebp + 0x10], edx
and edx, 0xff
add ecx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x44]
mov ebx, dword [eax + 4]
xor esi, ecx
xor ebx, esi
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x44]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
movzx ebx, dh
mov ebx, dword [ebx*4 + 0x439be0]
sub ebx, dword [ecx*4 + 0x4397e0]
mov ecx, edx
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x4393e0]
mov dword [ebp + 0x10], edx
and edx, 0xff
mov ecx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x48]
xor ebx, ecx
xor edi, ebx
mov ebx, dword [eax + 8]
sub ebx, edi
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x48]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov ebx, edx
shr ebx, 0x18
add ecx, dword [ebx*4 + 0x4393e0]
movzx ebx, dh
xor ecx, dword [ebx*4 + 0x439be0]
mov dword [ebp + 0x10], edx
and edx, 0xff
mov ebx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x4c]
sub ecx, ebx
xor esi, ecx
mov ecx, dword [eax + 0xc]
lea ebx, [ecx + esi]
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x4c]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov ebx, edx
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x4393e0]
movzx ebx, dh
sub ecx, dword [ebx*4 + 0x439be0]
mov dword [ebp + 0x10], edx
and edx, 0xff
add ecx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x50]
mov ebx, dword [eax + 0x10]
xor edi, ecx
xor ebx, edi
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x50]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
movzx ebx, dh
mov ebx, dword [ebx*4 + 0x439be0]
sub ebx, dword [ecx*4 + 0x4397e0]
mov ecx, edx
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x4393e0]
mov dword [ebp + 0x10], edx
and edx, 0xff
xor ebx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x54]
xor esi, ebx
mov ebx, dword [eax + 0x14]
sub ebx, esi
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x54]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov ebx, edx
shr ebx, 0x18
add ecx, dword [ebx*4 + 0x4393e0]
movzx ebx, dh
xor ecx, dword [ebx*4 + 0x439be0]
mov dword [ebp + 0x10], edx
and edx, 0xff
mov ebx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x58]
sub ecx, ebx
xor edi, ecx
mov ecx, dword [eax + 0x18]
lea ebx, [ecx + edi]
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x58]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov ebx, edx
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x4393e0]
mov dword [ebp + 0x10], edx
movzx ebx, dh
sub ecx, dword [ebx*4 + 0x439be0]
and edx, 0xff
add ecx, dword [edx*4 + 0x439fe0]
xor esi, ecx
mov edx, dword [eax + 0x5c]
mov ebx, dword [eax + 0x1c]
xor ebx, esi
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x5c]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
movzx ebx, dh
mov ebx, dword [ebx*4 + 0x439be0]
sub ebx, dword [ecx*4 + 0x4397e0]
mov ecx, edx
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x4393e0]
mov dword [ebp + 0x10], edx
and edx, 0xff
xor ebx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x60]
xor edi, ebx
mov ebx, dword [eax + 0x20]
sub ebx, edi
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x60]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov ebx, edx
shr ebx, 0x18
add ecx, dword [ebx*4 + 0x4393e0]
movzx ebx, dh
xor ecx, dword [ebx*4 + 0x439be0]
mov dword [ebp + 0x10], edx
and edx, 0xff
mov ebx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x64]
sub ecx, ebx
xor esi, ecx
mov ecx, dword [eax + 0x24]
lea ebx, [ecx + esi]
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x64]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov ebx, edx
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x4393e0]
movzx ebx, dh
sub ecx, dword [ebx*4 + 0x439be0]
mov dword [ebp + 0x10], edx
and edx, 0xff
mov ebx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x68]
add ecx, ebx
mov ebx, dword [eax + 0x28]
xor edi, ecx
xor ebx, edi
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x68]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
movzx ebx, dh
mov ebx, dword [ebx*4 + 0x439be0]
sub ebx, dword [ecx*4 + 0x4397e0]
mov ecx, edx
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x4393e0]
mov dword [ebp + 0x10], edx
and edx, 0xff
mov ecx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x6c]
xor ebx, ecx
xor esi, ebx
mov ebx, dword [eax + 0x2c]
sub ebx, esi
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x6c]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov ebx, edx
shr ebx, 0x18
add ecx, dword [ebx*4 + 0x4393e0]
movzx ebx, dh
xor ecx, dword [ebx*4 + 0x439be0]
mov dword [ebp + 0x10], edx
and edx, 0xff
sub ecx, dword [edx*4 + 0x439fe0]
xor edi, ecx
mov ecx, dword [eax + 0x80]
test ecx, ecx
je 0x40c948
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x70]
lea ebx, [ecx + edi]
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x70]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov ebx, edx
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x4393e0]
movzx ebx, dh
sub ecx, dword [ebx*4 + 0x439be0]
mov dword [ebp + 0x10], edx
and edx, 0xff
add ecx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x74]
mov ebx, dword [eax + 0x34]
xor esi, ecx
xor ebx, esi
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x74]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
movzx ebx, dh
mov ebx, dword [ebx*4 + 0x439be0]
sub ebx, dword [ecx*4 + 0x4397e0]
mov ecx, edx
shr ecx, 0x18
add ebx, dword [ecx*4 + 0x4393e0]
mov dword [ebp + 0x10], edx
and edx, 0xff
mov ecx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x78]
xor ebx, ecx
xor edi, ebx
mov ebx, dword [eax + 0x38]
sub ebx, edi
mov ecx, 0x20
sub ecx, edx
mov edx, ebx
shr edx, cl
mov ecx, dword [eax + 0x78]
shl ebx, cl
or edx, ebx
mov ecx, edx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov ebx, edx
shr ebx, 0x18
add ecx, dword [ebx*4 + 0x4393e0]
movzx ebx, dh
xor ecx, dword [ebx*4 + 0x439be0]
mov dword [ebp + 0x10], edx
and edx, 0xff
mov ebx, dword [edx*4 + 0x439fe0]
mov edx, dword [eax + 0x3c]
sub ecx, ebx
mov ebx, dword [eax + 0x7c]
xor esi, ecx
add edx, esi
mov ecx, 0x20
sub ecx, ebx
mov eax, edx
shr eax, cl
mov ecx, ebx
shl edx, cl
or eax, edx
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov edx, eax
shr edx, 0x18
mov ebx, dword [edx*4 + 0x4393e0]
movzx edx, ah
xor ecx, ebx
mov ebx, dword [edx*4 + 0x439be0]
mov dword [ebp + 0x10], eax
and eax, 0xff
mov edx, dword [eax*4 + 0x439fe0]
sub ecx, ebx
add ecx, edx
xor edi, ecx
mov eax, edi
mov edx, esi
jmp 0x40ceae
mov edx, esi
mov esi, dword [eax + 0x80]
test esi, esi
mov ecx, edi
mov dword [ebp + 8], ecx
je 0x40cab9
mov esi, dword [eax + 0x3c]
add esi, ecx
mov edi, dword [eax + 0x7c]
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov esi, ebx
shr esi, 0x18
xor ecx, dword [esi*4 + 0x4393e0]
movzx esi, bh
sub ecx, dword [esi*4 + 0x439be0]
mov esi, dword [eax + 0x38]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
add ecx, dword [ebx*4 + 0x439fe0]
mov edi, dword [eax + 0x78]
xor edx, ecx
sub esi, edx
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + 0x4397e0]
mov esi, ebx
shr esi, 0x18
add edi, dword [esi*4 + 0x4393e0]
movzx ecx, bh
xor edi, dword [ecx*4 + 0x439be0]
mov esi, dword [eax + 0x34]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
sub edi, dword [ebx*4 + 0x439fe0]
mov ecx, dword [ebp + 8]
xor ecx, edi
mov edi, dword [eax + 0x74]
xor esi, ecx
mov dword [ebp + 8], ecx
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + 0x4397e0]
movzx esi, bh
mov esi, dword [esi*4 + 0x439be0]
sub esi, edi
mov ecx, ebx
shr ecx, 0x18
add esi, dword [ecx*4 + 0x4393e0]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
xor esi, dword [ebx*4 + 0x439fe0]
mov edi, dword [eax + 0x70]
xor edx, esi
mov ecx, dword [eax + 0x30]
lea esi, [ecx + edx]
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + 0x4397e0]
mov esi, ebx
shr esi, 0x18
xor edi, dword [esi*4 + 0x4393e0]
movzx ecx, bh
mov esi, dword [ecx*4 + 0x439be0]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
mov ecx, dword [ebx*4 + 0x439fe0]
sub edi, esi
add edi, ecx
mov ecx, dword [ebp + 8]
xor ecx, edi
mov dword [ebp + 8], ecx
mov esi, dword [eax + 0x2c]
sub esi, ecx
mov edi, dword [eax + 0x6c]
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov esi, ebx
shr esi, 0x18
add ecx, dword [esi*4 + 0x4393e0]
movzx esi, bh
xor ecx, dword [esi*4 + 0x439be0]
mov esi, dword [eax + 0x28]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
sub ecx, dword [ebx*4 + 0x439fe0]
mov edi, dword [eax + 0x68]
xor edx, ecx
xor esi, edx
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + 0x4397e0]
movzx esi, bh
mov esi, dword [esi*4 + 0x439be0]
sub esi, edi
mov ecx, ebx
shr ecx, 0x18
add esi, dword [ecx*4 + 0x4393e0]
mov edi, dword [eax + 0x64]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
xor esi, dword [ebx*4 + 0x439fe0]
mov ecx, dword [ebp + 8]
xor ecx, esi
mov esi, dword [eax + 0x24]
add esi, ecx
mov dword [ebp + 8], ecx
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov esi, ebx
shr esi, 0x18
xor ecx, dword [esi*4 + 0x4393e0]
movzx esi, bh
sub ecx, dword [esi*4 + 0x439be0]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
add ecx, dword [ebx*4 + 0x439fe0]
mov edi, dword [eax + 0x60]
xor edx, ecx
mov esi, dword [eax + 0x20]
sub esi, edx
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + 0x4397e0]
mov esi, ebx
shr esi, 0x18
add edi, dword [esi*4 + 0x4393e0]
movzx ecx, bh
xor edi, dword [ecx*4 + 0x439be0]
mov esi, dword [eax + 0x1c]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
sub edi, dword [ebx*4 + 0x439fe0]
mov ecx, dword [ebp + 8]
xor ecx, edi
mov edi, dword [eax + 0x5c]
xor esi, ecx
mov dword [ebp + 8], ecx
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + 0x4397e0]
movzx esi, bh
mov esi, dword [esi*4 + 0x439be0]
sub esi, edi
mov ecx, ebx
shr ecx, 0x18
mov edi, dword [ecx*4 + 0x4393e0]
mov ecx, dword [eax + 0x18]
add esi, edi
mov dword [ebp + 0x10], ebx
and ebx, 0xff
xor esi, dword [ebx*4 + 0x439fe0]
mov edi, dword [eax + 0x58]
xor edx, esi
lea esi, [ecx + edx]
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + 0x4397e0]
mov esi, ebx
shr esi, 0x18
xor edi, dword [esi*4 + 0x4393e0]
movzx ecx, bh
mov esi, dword [ecx*4 + 0x439be0]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
mov ecx, dword [ebx*4 + 0x439fe0]
sub edi, esi
add edi, ecx
mov ecx, dword [ebp + 8]
xor ecx, edi
mov dword [ebp + 8], ecx
mov esi, dword [eax + 0x14]
sub esi, ecx
mov edi, dword [eax + 0x54]
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov esi, ebx
shr esi, 0x18
add ecx, dword [esi*4 + 0x4393e0]
movzx esi, bh
xor ecx, dword [esi*4 + 0x439be0]
mov esi, dword [eax + 0x10]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
sub ecx, dword [ebx*4 + 0x439fe0]
mov edi, dword [eax + 0x50]
xor edx, ecx
xor esi, edx
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + 0x4397e0]
movzx esi, bh
mov esi, dword [esi*4 + 0x439be0]
sub esi, edi
mov ecx, ebx
shr ecx, 0x18
add esi, dword [ecx*4 + 0x4393e0]
mov edi, dword [eax + 0x4c]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
xor esi, dword [ebx*4 + 0x439fe0]
mov ecx, dword [ebp + 8]
xor ecx, esi
mov esi, dword [eax + 0xc]
add esi, ecx
mov dword [ebp + 8], ecx
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
mov esi, ebx
shr esi, 0x18
xor ecx, dword [esi*4 + 0x4393e0]
movzx esi, bh
sub ecx, dword [esi*4 + 0x439be0]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
add ecx, dword [ebx*4 + 0x439fe0]
mov edi, dword [eax + 0x48]
xor edx, ecx
mov esi, dword [eax + 8]
sub esi, edx
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + 0x4397e0]
mov esi, ebx
shr esi, 0x18
add edi, dword [esi*4 + 0x4393e0]
movzx ecx, bh
xor edi, dword [ecx*4 + 0x439be0]
mov esi, dword [eax + 4]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
sub edi, dword [ebx*4 + 0x439fe0]
mov ecx, dword [ebp + 8]
xor ecx, edi
mov edi, dword [eax + 0x44]
xor esi, ecx
mov dword [ebp + 8], ecx
mov ebx, esi
mov ecx, 0x20
sub ecx, edi
shr ebx, cl
mov ecx, edi
shl esi, cl
or ebx, esi
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov edi, dword [ecx*4 + 0x4397e0]
movzx esi, bh
mov esi, dword [esi*4 + 0x439be0]
sub esi, edi
mov ecx, ebx
shr ecx, 0x18
add esi, dword [ecx*4 + 0x4393e0]
mov dword [ebp + 0x10], ebx
and ebx, 0xff
xor esi, dword [ebx*4 + 0x439fe0]
mov edi, dword [eax + 0x40]
mov eax, dword [eax]
xor edx, esi
lea esi, [eax + edx]
mov eax, esi
mov ecx, 0x20
sub ecx, edi
shr eax, cl
mov ecx, edi
shl esi, cl
or eax, esi
mov ecx, eax
shr ecx, 0x10
mov esi, eax
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4397e0]
shr esi, 0x18
mov ebx, dword [esi*4 + 0x4393e0]
movzx esi, ah
mov edi, dword [esi*4 + 0x439be0]
mov dword [ebp + 0x10], eax
xor ecx, ebx
and eax, 0xff
sub ecx, edi
mov edi, dword [eax*4 + 0x439fe0]
mov eax, dword [ebp + 8]
add ecx, edi
xor eax, ecx
mov esi, dword [ebp + 0xc]
mov ecx, eax
shr ecx, 0x18
mov byte [esi], cl
inc esi
mov ecx, eax
shr ecx, 0x10
mov byte [esi], cl
mov ecx, eax
shr ecx, 8
mov byte [esi + 1], cl
inc esi
mov byte [esi + 1], al
inc esi
inc esi
mov eax, edx
shr eax, 0x18
mov byte [esi], al
inc esi
mov ecx, edx
shr ecx, 0x10
mov byte [esi], cl
inc esi
mov eax, edx
shr eax, 8
mov byte [esi], al
pop edi
mov byte [esi + 1], dl
pop esi
mov eax, 1
pop ebx
pop ebp
ret