Function at 0x100310e0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0xd4
rcl edx, cl
mov dh, byte [esp + 0xc]
rcl ecx, cl
adc al, dh
adc ecx, ecx
xchg al, cl
rcl ecx, 0x14
rcl ecx, 7
setno cl
or dh, dh
setl ah
dec ch
rcr edx, 0x12
setp ah
add al, byte [esp + 0xc]
movzx eax, ch
rol edx, 0xd
mov edx, eax
not dl
sub ch, byte [esp + 0xc]
mov ecx, edx
lea edx, [edx + ecx]
not ecx
xchg ecx, eax
neg cl
mov edx, ecx
movzx edx, dl
lea edx, [edx + ecx*2]
not eax
xchg edx, ecx
mov dword [esp], eax
shrd eax, eax, 0x1a
mov ecx, eax
neg ecx
lea edi, [ecx + ecx]
sub ecx, edi
ror eax, cl
mov esi, ecx
ror esi, cl
mov edi, esi
or edi, eax
add edi, edi
lea edx, [eax + eax]
not edx
lea ebx, [esi + esi]
and edx, ebx
xor esi, eax
sub edi, esi
lea ebx, [edx + eax*2]
mov edx, edi
xor edx, ebx
not ebx
and ebx, edi
add ebx, ebx
sub edx, ebx
mov ebx, 0x7ffe00e0
rol edx, cl
shld edx, edx, 0x1a
mov esi, edx
neg esi
dec esi
xor esi, 0x1f
mov ecx, esi
rol edx, cl
rol ebx, cl
mov ecx, edx
mov edi, ebx
rol edi, cl
neg ecx
shld edx, edx, 0xf
lea eax, [edi + edi]
xor edi, 1
and eax, 2
add eax, edi
not eax
inc eax
rol eax, cl
mov ecx, edx
shld eax, eax, 0xf
and ecx, eax
xor edx, eax
lea edi, [ecx + ecx]
sub ebx, edi
lea eax, [edx + ecx*2]
add ecx, edx
mov edx, ecx
xor ecx, eax
not edx
and edx, eax
mov eax, ebx
add edx, edx
sub edx, ecx
mov ecx, ebx
shrd edx, edx, 0xf
xor ecx, edx
or eax, edx
neg ecx
add ecx, eax
add eax, eax
add ecx, ecx
sub eax, edx
sub eax, ebx
mov edx, ecx
or edx, eax
xor ecx, eax
mov eax, dword [esp]
lea edi, [edi + edx*2]
sub edi, ecx
mov ecx, esi
shl ecx, 5
lea ebx, [eax + eax]
add ecx, esi
mov eax, ebx
neg ecx
rol edi, cl
bswap eax
mov ecx, eax
neg ecx
mov esi, dword [edi]
mov edx, esi
dec ecx
bswap edx
mov edi, ecx
and edi, edx
xor edi, ecx
mov ecx, eax
or ecx, 1
and eax, 1
add ecx, eax
add edx, edi
mov eax, ecx
xor ecx, edx
or eax, edx
mov edi, ebx
add eax, eax
not edi
sub eax, ecx
mov ecx, esi
not ecx
imul edi, esi
imul ecx, ebx
not edi
not ecx
sub edi, ecx
mov ecx, esi
neg ecx
mov dword [esp + 0x60], esi
bswap eax
lea esi, [ecx - 1]
lea ecx, [ebx + ecx - 1]
or ebx, esi
sub ecx, ebx
lea edx, [eax + eax]
add ecx, ecx
mov ebx, ecx
and ecx, edi
or ebx, edi
add ebx, ecx
mov edi, ebx
mov esi, ebx
not edi
mov ecx, ebx
and esi, 0xf7b5373c
and edi, 0x84ac8c3
and ecx, 0x84ac8c3
or ebx, 0x84ac8c3
imul edi, esi
imul ebx, ecx
add edi, ebx
mov ecx, edi
and edi, 0x5149f427
or ecx, 0x5149f427
add ecx, edi
mov ebx, ecx
mov esi, ecx
mov edi, ecx
not ecx
and ebx, 0xb9ec27eb
or esi, 0xb9ec27eb
and edi, 0x4613d814
and ecx, 0xb9ec27eb
imul esi, ebx
imul ecx, edi
add esi, ecx
mov ecx, esi
not esi
and esi, 0x260910cd
xor ecx, 0x260910cd
add esi, esi
sub ecx, esi
mov esi, ecx
not esi
or esi, edx
and edx, ecx
mov edi, dword [esp]
lea ebx, [esi + ecx + 1]
lea esi, [ecx + eax*2]
sub esi, edx
lea eax, [ebx + ebx]
xor ebx, esi
lea edx, [esi + esi]
and edx, eax
lea eax, [edi - 1]
add edx, ebx
not eax
lea esi, [edx + edx]
lea ecx, [eax + eax]
xor eax, edx
or esi, ecx
sub esi, eax
mov dword [esp + 4], esi
mov edx, esi
mov ecx, esi
mov eax, esi
not esi
and edx, 0xfa1b90b3
or ecx, 0xfa1b90b3
and eax, 0x5e46f4c
and esi, 0xfa1b90b3
imul ecx, edx
imul esi, eax
add ecx, esi
mov edx, ecx
add ecx, ecx
xor edx, 0x185bbcc
and ecx, 0x30b7798
add edx, ecx
mov ebx, edx
mov ecx, edx
mov esi, edx
not ebx
or ecx, 0x9c419e7b
and esi, 0x9c419e7b
and ebx, 0x9c419e7b
and edx, 0x63be6184
imul esi, ecx
imul edx, ebx
add esi, edx
mov edx, edi
mov ecx, esi
add esi, esi
xor ecx, 0xbc0adcfc
and esi, 0x7815b9f8
add ecx, esi
mov ebx, edi
mov eax, ecx
add ecx, ecx
xor eax, 1
and ecx, 2
add eax, ecx
mov ecx, edi
not ecx
and edx, 0xe3d41b1a
and ecx, 0x1c2be4e5
or ebx, 0x1c2be4e5
and edi, 0x1c2be4e5
not eax
imul edx, ecx
imul edi, ebx
add edx, edi
lea esi, [eax + 1]
mov dword [esp + 8], eax
mov eax, edx
and eax, 0x22d036a0
xor edx, 0xdd2fc95f
add eax, eax
sub eax, edx
mov ecx, eax
mov edx, eax
mov ebx, eax
not ecx
and edx, 0xaa6f38ed
or ebx, 0xaa6f38ed
and ecx, 0xaa6f38ed
and eax, 0x5590c712
imul ebx, edx
imul eax, ecx
add ebx, eax
mov edx, ebx
not ebx
and ebx, 0xe084cb0d
xor edx, 0x6084cb0d
add ebx, ebx
sub edx, ebx
mov ebx, esi
mov dword [esp + 0xc], edx
neg edx
neg ebx
dec ebx
lea edi, [edx - 1]
xor edi, 1
lea ecx, [edx + edx - 2]
or ecx, 2
sub ecx, edi
mov edi, ebx
mov edx, ecx
xor edi, ecx
neg edx
or ebx, ecx
dec edx
xor edi, ebx
mov eax, edx
xor edx, esi
or eax, esi
mov ebx, edi
xor eax, edx
mov edx, edi
and ebx, eax
or edx, eax
imul edx, ebx
mov ebx, eax
not ebx
and ebx, edi
not edi
and edi, eax
mov eax, ecx
imul edi, ebx
xor eax, esi
add edx, edi
mov edi, ecx
or edi, esi
and esi, ecx
xor eax, edi
mov edi, dword [esp + 8]
lea ebx, [ecx + edi + 1]
mov ecx, eax
sub ebx, esi
not ecx
mov esi, ebx
mov edi, ebx
and ecx, ebx
not ebx
or esi, eax
and edi, eax
and eax, ebx
imul edi, esi
lea esi, [edx + edx]
imul eax, ecx
add edi, eax
mov ecx, dword [esp + 0xc]
lea eax, [edi + edi]
xor edi, edx
and eax, esi
lea edi, [eax + edi - 1]
not edi
mov edx, edi
not edx
lea ebx, [edx + edi*2]
mov edx, dword [esp + 4]
neg edx
dec edx
mov edi, dword [esp]
mov eax, edx
ror edi, cl
and eax, 1
or edx, 1
not edi
rol edi, cl
add eax, edx
mov edx, eax
or edx, edi
mov dword [esp + 0x10], ebx
mov ebx, eax
xor ebx, edi
lea esi, [eax + edi]
sub esi, edx
mov edx, eax
and edx, edi
add edx, ebx
mov ebx, esi
mov ecx, edx
not ebx
not ecx
and ebx, edx
and ecx, esi
imul ebx, ecx
mov ecx, edx
or ecx, esi
and edx, esi
imul edx, ecx
mov esi, edi
add ebx, edx
mov edx, eax
neg esi
not edx
dec esi
or edx, esi
mov esi, edi
not esi
lea ecx, [eax + edx + 1]
neg eax
dec eax
or eax, esi
mov esi, ecx
lea edx, [edi + eax + 1]
mov eax, ecx
mov edi, edx
not eax
not edi
and eax, edx
and edi, ecx
and esi, edx
or ecx, edx
imul eax, edi
imul ecx, esi
add eax, ecx
mov edx, eax
xor eax, ebx
or edx, ebx
add edx, edx
sub edx, eax
not edx
mov ebx, dword [esp + 0x10]
mov esi, edx
lea edi, [edx + ebx]
lea ecx, [ebx + ebx]
neg ebx
dec ebx
lea eax, [edx + edx]
or esi, ebx
and ecx, eax
xor ebx, esi
sub edi, ecx
xor edx, ebx
add edx, edx
mov eax, edx
not eax
and eax, edi
xor edi, edx
add eax, eax
sub eax, edi
mov ecx, eax
mov ebx, eax
neg ecx
mov edi, eax
dec ecx
or ebx, 0xf1a47670
mov edx, ecx
xor edi, 0xf1a47670
or edx, 0xe5b898f
xor ecx, 0xe5b898f
sub ebx, edi
xor edx, ecx
mov ecx, ebx
mov esi, ebx
mov edi, ebx
not ecx
and esi, edx
or edi, edx
and ecx, edx
not edx
and edx, ebx
imul edi, esi
mov esi, eax
imul edx, ecx
not esi
add edi, edx
mov edx, esi
and esi, 0xe5b898f
or edx, 0xe5b898f
add esi, eax
mov ebx, esi
mov ecx, esi
not ebx
lea edx, [eax + edx + 1]
mov eax, esi
and eax, edx
or ecx, edx
and ebx, edx
not edx
and edx, esi
imul ecx, eax
imul edx, ebx
add ecx, edx
mov esi, ecx
xor ecx, edi
and esi, edi
lea edx, [ecx + esi*2]
mov ecx, edx
mov esi, edx
not ecx
and esi, 0xddfd19ad
or ecx, 0xddfd19ad
xor esi, edx
add esi, 0xddfd19ad
lea edi, [edx + ecx + 1]
mov edx, esi
xor edx, edi
and esi, edi
lea edx, [edx + esi*2 - 0x1ff4bfae]
mov edi, edx
mov eax, edx
neg edi
or eax, 0x1a008a90
dec edi
neg eax
mov ebx, edi
add eax, edx
or ebx, 0xe5ff756f
add eax, 0x1a008a90
xor ebx, 0xe5ff756f
mov esi, eax
xor edi, ebx
not esi
mov ebx, edi
mov ecx, eax
mov dword [esp + 0x68], esi
and ebx, esi
mov esi, edi
or ecx, edi
not esi
and esi, eax
and eax, edi
imul esi, ebx
mov ebx, edx
imul eax, ecx
add esi, eax
mov edi, edx
mov eax, edx
and ebx, 0xe5ff756f
xor edi, 0xe5ff756f
or eax, 0xe5ff756f
sub edx, ebx
sub eax, edi
add edx, 0xe5ff756f
mov edi, eax
mov ebx, edx
not edi
not ebx
and edi, edx
and ebx, eax
imul edi, ebx
mov ebx, eax
and ebx, edx
or eax, edx
imul eax, ebx
lea edx, [esi + esi]
add edi, eax
xor esi, edi
lea eax, [edi + edi]
and edx, eax
add edx, esi
lea ebx, [edx + edx]
mov eax, ebx
or eax, 0x127cdede
sub eax, ebx
and ebx, 0x127cdede
neg ebx
xor eax, 0x127cdede
lea ebx, [edx + ebx + 0x93e6f6f]
mov edx, dword [esp + 0x60]
rol edx, cl
lea edi, [ebx + ebx]
xor ebx, eax
lea esi, [eax + eax]
or edi, esi
mov esi, dword [esp + 0x68]
sub edi, ebx
mov eax, esi
xor eax, edi
and edi, esi
lea esi, [eax + edi*2]
mov dword [esp + 0x6c], esi
rol esi, cl
lea eax, [edx + edx]
mov edi, esi
neg edi
lea ebx, [edi + edi - 2]
mov edi, eax
xor edi, ebx
or eax, ebx
sub eax, edi
mov edi, edx
not edi
imul edi, esi
not esi
imul edx, esi
sub edi, edx
lea edx, [eax + eax]
mov esi, edi
xor edi, eax
not esi
add esi, esi
and esi, edx
mov eax, dword [esp + 0x6c]
sub esi, edi
mov edi, eax
mov edx, eax
ror esi, cl
mov ecx, eax
not edi
or ecx, 0xa75842fb
and edx, 0xa75842fb
and edi, 0xa75842fb
and eax, 0x58a7bd04
imul edx, ecx
imul eax, edi
add edx, eax
mov ebx, edx
not ebx
imul eax, ebx, 0xcda33259
imul edx, edx, 0xcda3325a
add eax, edx
mov ecx, eax
mov edi, eax
not ecx
mov ebx, eax
and edi, 0xe90087cc
and ecx, 0x16ff7833
and ebx, 0x16ff7833
or eax, 0x96ff7833
imul ecx, edi
imul eax, ebx
add ecx, eax
mov eax, ecx
xor ecx, 0xc3c3bfbb
and eax, 0x3c3bfbb
mov edx, dword [esp + 0x60]
lea ebx, [ecx + eax*2]
not ebx
lea ecx, [edx + edx]
lea edi, [ebx + ebx]
mov eax, edi
lea edx, [edi + edx*2]
and eax, ecx
not edi
sub edx, eax
lea eax, [ecx + ecx]
add edi, edi
and eax, edi
lea ebx, [eax + ebx*2]
sub ebx, ecx
lea eax, [edx + edx]
mov edi, ebx
xor ebx, edx
not edi
mov edx, esi
add edi, edi
not edx
and eax, edi
sub eax, ebx
mov ebx, eax
neg ebx
dec ebx
mov edi, ebx
and edx, ebx
not edi
mov ecx, ebx
and edi, esi
and ecx, esi
imul edi, edx
or ebx, esi
imul ebx, ecx
neg esi
neg edi
dec esi
dec edi
mov edx, esi
mov ecx, eax
sub edi, ebx
not edx
not ecx
mov ebx, eax
and edx, eax
and ecx, esi
or ebx, esi
and eax, esi
imul ecx, edx
imul eax, ebx
add ecx, eax
neg ecx
lea edx, [ecx - 1]
xor edx, edi
not edi
add edi, edi
lea esi, [ecx + ecx - 2]
and edi, esi
sub edx, edi
mov edi, dword [esp + 0x68]
mov eax, edx
not edi
inc edi
xor eax, edi
and edx, edi
lea ecx, [eax + edx*2]
mov edi, ecx
mov ebx, ecx
mov edx, ecx
not edi
mov esi, ecx
and ebx, 0xe963f1a1
or edx, 0xe963f1a1
and edi, 0xe963f1a1
and esi, 0x169c0e5e
imul edx, ebx
imul esi, edi
add edx, esi
imul eax, edx, 0xd77e7b57
not edx
imul edi, edx, 0x288184a8
not eax
not edi
sub eax, edi
mov esi, eax
mov edi, eax
not esi
mov ebx, eax
and esi, 0x65f03261
and edi, 0x9a0fcd9e
or ebx, 0x65f03261
and eax, 0x65f03261
imul edi, esi
imul eax, ebx
add edi, eax
mov eax, edi
xor edi, 0x4a7c13a8
and eax, 0xca7c13a8
lea esi, [edi + eax*2]
mov edi, 0x8d72d0e1
bswap esi
rol edi, cl
mov edx, esi
not edi
neg edx
ror edi, cl
bswap edi
bswap ecx
not ecx
lea ebx, [edx - 1]
neg ecx
not ecx
lea eax, [edi + edx - 1]
and edi, ebx
inc ecx
sub eax, edi
lea edi, [esi + esi]
and edi, 2
xor esi, 1
add edi, esi
mov esi, edi
and edi, eax
xor esi, eax
bswap ecx
lea ebx, [esi + edi*2]
mov esi, ecx
and esi, 0x8d72d0e1
lea edx, [ecx + ecx]
xor esi, 0x8d72d0e1
and edx, 0x1ae5a1c2
add esi, ecx
sub ecx, edx
add ecx, 0x8d72d0e1
mov edx, ecx
xor ecx, esi
not edx
add edx, edx
lea edi, [esi + esi]
bswap ebx
and edi, edx
sub edi, ecx
mov ecx, ebx
mov edx, ebx
mov esi, ebx
not ebx
or ecx, 0xacd61bbb
and edx, 0xacd61bbb
and esi, 0x5329e444
and ebx, 0xacd61bbb
imul edx, ecx
imul ebx, esi
add edx, ebx
lea esi, [edx + edx]
xor edx, 0x6d29e7a0
or esi, 0xda53cf40
sub esi, edx
mov edx, esi
mov ebx, esi
not edx
mov ecx, esi
and edx, 0x117c7173
and ebx, 0xee838e8c
or ecx, 0x117c7173
and esi, 0x117c7173
imul ebx, edx
imul esi, ecx
add ebx, esi
mov ecx, edi
mov esi, ebx
and ebx, 0x256f5320
xor esi, 0xa56f5320
add esi, eax
lea edx, [esi + ebx*2]
mov esi, edi
mov ebx, edi
not esi
or ecx, edx
sub ebx, edx
and esi, edx
sub ecx, edx
xor edi, ecx
add edi, edi
mov edx, edi
lea ebx, [ebx + esi*2]
and edx, ebx
or edi, ebx
sub edx, eax
lea ecx, [edx + edi + 0x314fe967]
xor ecx, 0xaf660ceb
lea eax, [edx + edi]
mov dword [esp + 0x50], ecx
xor ecx, 0xffffff44
lea edx, [esp + 0x88]
mov byte [edx], cl
mov bl, byte [edx]
mov dl, bl
shl dl, 6
shr bl, 2
xor dl, bl
add dl, 0x5b
mov dword [esp + 0x64], eax
mov al, dl
shr al, 2
shl dl, 6
xor al, dl
add al, 0xc7
mov cl, al
xor cl, 0x74
mov byte [esp], cl
je 0x100319f0
xor ebx, ebx
mov dl, al
inc ebx
shl dl, 6
shr al, 2
xor dl, al
add dl, 0x5b
mov al, dl
shr al, 2
shl dl, 6
movzx ebx, bl
xor al, dl
add al, 0xc7
mov cl, byte [ebx*4 + 0x10032140]
xor cl, al
mov byte [esp + ebx], cl
jne 0x100319c5
mov ecx, dword [esp]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x64]
mov ebx, ecx
mov eax, ecx
not ebx
or eax, 0xcb6ff6fd
mov edi, dword [esp + 0x38]
xor eax, ecx
mov esi, dword [esp + 0x48]
xor eax, 0xcb6ff6fd
xor esi, edi
mov dword [esp + 0x8c], esi
lea edx, [ebx + 1]
mov esi, dword [esp + 0x30]
add ebx, ebx
mov dword [esp + 0x74], esi
mov esi, edx
and esi, 0xfffffffe
xor edx, 1
add esi, esi
and ebx, 0xaa278826
sub esi, edx
add esi, esi
shrd esi, esi, 3
mov edx, esi
not edx
add edx, edx
mov dword [esp + 0x84], eax
lea eax, [ecx + ebx + 0x2aec3bed]
mov ebx, dword [esp + 0xc]
and edx, 0xb89ada20
mov dword [esp + 0x60], edi
mov dword [esp + 0x68], ebx
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x70], edi
mov dword [esp + 0x78], ebx
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x7c], edi
mov edi, esi
mov dword [esp + 0x80], ebx
lea ebx, [esi + edx - 0x5c4d6d10]
and edi, 0x5c4d6d10
xor esi, 0x5c4d6d10
mov edx, ebx
add edi, esi
not edx
imul edx, edi
not edi
imul ebx, edi
sub edx, ebx
lea ebx, [ecx + ecx]
mov edi, ebx
dec edx
or edi, 0x55d877d8
not edx
shrd edx, edx, 0x1d
lea esi, [edi - 0x55d877d8]
mov dword [esp + 0xb0], esi
xor ebx, esi
mov esi, ebx
not ebx
xor esi, eax
add eax, eax
add ebx, ebx
and eax, ebx
lea ebx, [edx + edx]
lea esi, [esi + edi - 0x55d877d8]
sub esi, eax
lea eax, [esi + 0x63de0fd2]
not eax
add eax, eax
and eax, ebx
sub eax, edx
lea edx, [esi + esi - 0x3843e05c]
lea eax, [eax + esi + 0x63de0fd2]
mov esi, edx
mov dword [esp + 0xbc], eax
xor esi, ebx
or edx, ebx
lea ebx, [eax + eax]
mov eax, ecx
sub edx, esi
xor eax, 0xcb6ff6fd
and eax, ecx
add eax, 0xcb6ff6fd
mov dword [esp + 0xb8], edx
mov edx, eax
not edx
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0x84]
mov edi, ebx
mov esi, ebx
and edx, ebx
not ebx
or edi, eax
and ebx, eax
and esi, eax
imul ebx, edx
mov edx, ecx
imul esi, edi
or edx, 0x34900902
add esi, ebx
neg edx
add edx, ecx
neg ecx
dec ecx
add edx, 0x34900902
mov eax, ecx
or ecx, 0xcb6ff6fd
xor eax, 0xcb6ff6fd
mov dword [esp + 0xa8], edx
not edx
mov dword [esp + 0xa4], edx
sub ecx, eax
mov dword [esp + 0xac], esi
mov dword [esp + 0x64], ecx
mov edi, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x48]
cmp edx, dword [esp + 0x68]
je 0x10031d11
mov ecx, ebx
xor ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x6c]
je 0x10031cef
mov ecx, dword [esp + 0x78]
lea esi, [ebx + ecx]
cmp esi, dword [esp + 0x74]
je 0x10031cca
mov ecx, ebx
sub ecx, dword [esp + 0x7c]
cmp ecx, dword [esp + 0x80]
je 0x10031cb9
mov ecx, ebx
sub ecx, dword [esp + 0x2c]
cmp ecx, dword [esp + 0x40]
jne 0x10031ca3
mov edx, dword [esp + 0xb8]
mov ecx, edx
xor ecx, dword [esp + 0xbc]
sub ecx, dword [esp + 0xb0]
add edx, edx
and edx, dword [esp + 0xb4]
mov esi, dword [esp + 0x50]
add ecx, edx
lea edx, [esp + 0xc0]
mov dword [edx], ecx
mov ecx, esi
xor esi, 0xfffffffa
xor ecx, 0xee5b5ad1
mov edx, dword [edx]
and esi, 0xff
lea eax, [esp + 0xc4]
mov dword [eax], edx
mov edx, esi
shl edx, 6
sub esi, edx
mov edx, dword [ecx*4 + 0x10153230]
mov ecx, dword [ebp + 8]
lea esi, [edx + esi - 0x40]
lea edx, [eax]
call esi
lea eax, [esp + 0xc]
mov ecx, dword [eax]
mov dword [esp + 0x68], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x78], ecx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x74], ecx
mov edx, dword [eax - 0xc]
mov ecx, dword [eax + 4]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x7c], ecx
lea ecx, [esp + 8]
add ebx, dword [ecx]
mov edx, dword [ecx + 0x30]
mov esi, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x3c]
mov dword [esp + 0x60], edx
xor edx, ebx
mov dword [esp + 0x70], esi
mov dword [esp + 0x80], ecx
jmp 0x10031ba6
mov ecx, ebx
add ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x3c]
jne 0x10031ba6
xor ebx, dword [esp + 0x18]
jmp 0x10031d06
mov eax, edi
add esp, 0xd4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [esp + 0x50]
xor edx, edx
xor esi, 0x6e158f2d
add esi, 0x804ec673
cmp esi, dword [ebp + 0xc]
setne dl
xor ebx, dword [esp + 4]
mov dword [esp + 0x8c], edx
jmp 0x10031d06
mov edx, dword [esp + 0x8c]
neg edx
inc edx
imul edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
sub ecx, edx
xor ebx, ecx
mov edx, dword [esp + 0x60]
xor edx, ebx
jmp 0x10031ba6
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x64]
mov ecx, ebx
mov esi, ebx
mov eax, ebx
not ecx
mov edi, dword [esp + 0xa8]
and esi, edi
and ebx, dword [esp + 0xa4]
or eax, edi
and ecx, edi
imul eax, esi
imul ebx, ecx
mov esi, dword [esp + 0xac]
add eax, ebx
mov ecx, esi
and ecx, eax
or eax, esi
lea edi, [ecx + eax]
neg edi
dec edi
mov edx, edi
mov ebx, edi
and edx, 0x750fd713
or ebx, 0x750fd713
imul ebx, edx
mov esi, edi
not edi
and esi, 0x8af028ec
and edi, 0x750fd713
neg ebx
imul edi, esi
dec ebx
sub ebx, edi
lea edi, [ecx + eax - 1]
not edi
mov ecx, edi
mov esi, edi
mov eax, edi
not edi
and eax, 0x8af028ed
and edi, 0x750fd712
imul edi, eax
and ecx, 0x750fd712
or esi, 0x750fd712
neg edi
imul esi, ecx
dec edi
sub edi, esi
mov edx, edi
not edx
and edx, ebx
xor ebx, edi
add edx, edx
sub edx, ebx
mov dword [esp + 0x94], esi
mov ebx, edx
mov esi, edx
or ebx, 0x92625655
and esi, 0x92625655
sub ebx, edx
xor esi, 0x92625655
xor ebx, 0x92625655
add esi, edx
mov eax, ebx
mov ecx, esi
not eax
not ecx
mov edi, esi
and ecx, ebx
and eax, esi
or edi, ebx
and esi, ebx
imul eax, ecx
mov ebx, edx
imul esi, edi
neg ebx
add esi, eax
dec ebx
mov edi, ebx
mov dword [esp + 0x84], eax
or edi, 0x92625655
mov eax, edx
sub edi, ebx
or eax, 0x6d9da9aa
xor edi, 0x92625655
sub edx, eax
mov eax, edi
add edx, 0x6d9da9aa
mov ebx, edi
and eax, edx
or ebx, edx
imul ebx, eax
mov eax, edx
not eax
and eax, edi
not edi
and edi, edx
imul edi, eax
add ebx, edi
lea edi, [esi + esi]
mov dword [esp + 0x98], ecx
lea edx, [ebx + ebx]
xor ebx, esi
and edi, edx
lea esi, [edi + ebx - 0x6d9da9ab]
mov edx, esi
lea eax, [esi + esi]
and edx, 0xdbc8cb4f
mov ebx, eax
add edx, edx
xor ebx, 0x486e6960
or eax, 0x486e6960
sub esi, edx
sub eax, ebx
add esi, 0x5bc8cb4f
mov edi, esi
mov ebx, eax
not edi
neg ebx
neg esi
not eax
imul ebx, edi
xor edi, edi
imul eax, esi
not ebx
not eax
sub eax, ebx
ror edi, cl
add eax, 0x6d9da9ab
mov edx, edi
ror eax, cl
mov ecx, dword [esp + 0x94]
rol edx, cl
mov dword [esp + 0xa0], eax
mov esi, edx
rol eax, cl
or esi, eax
add esi, esi
sub esi, edx
sub esi, eax
mov dword [esp + 0x9c], ebx
mov ebx, esi
xor ebx, edx
or edx, esi
sub edx, ebx
lea esi, [eax + eax]
xor eax, edx
lea ebx, [edx + edx]
mov edx, edi
and esi, ebx
not edx
add esi, eax
inc edx
ror esi, cl
mov eax, edx
add esi, dword [esp + 0x84]
not eax
mov ecx, esi
not esi
neg ecx
inc esi
dec ecx
neg edi
mov ebx, ecx
and eax, ecx
not ebx
dec edi
and ebx, edx
imul ebx, eax
mov eax, ecx
or eax, edx
and ecx, edx
imul ecx, eax
neg ebx
dec ebx
mov edx, esi
sub ebx, ecx
mov ecx, esi
mov eax, esi
not edx
and ecx, edi
or eax, edi
and edx, edi
not edi
and esi, edi
imul eax, ecx
imul esi, edx
add eax, esi
mov esi, ebx
neg eax
not esi
dec eax
imul esi, eax
not eax
imul ebx, eax
sub esi, dword [esp + 0x84]
sub esi, ebx
mov ecx, dword [esp + 0x9c]
ror esi, cl
mov edx, dword [esp + 0xa0]
ror edx, cl
neg ecx
lea ebx, [esi + esi]
mov eax, ebx
lea edi, [edx + edx]
xor eax, edi
or ebx, edi
sub ebx, eax
mov eax, ebx
xor eax, edx
not edx
and ebx, edx
add ebx, ebx
sub eax, ebx
mov edi, eax
or edi, esi
and esi, eax
mov ebx, dword [esp + 0x90]
add edi, esi
xor ebx, dword [esp + 0x34]
ror edi, cl
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x60]
rol edi, cl
xor edx, ebx
jmp 0x10031ba6