Function at 0x1003f73a
Capabilities:
Authenticate hmac

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x78
mov eax, 0x4195ebed
lea ebp, [esp + 0x20]
lea edi, [esp + 0x68]
mov esi, 0xb0
cmp eax, 0xcbb6c11
jle 0x1003f789
cmp eax, 0x5ec2f6f0
jle 0x1003f804
cmp eax, 0x5ec2f6f1
je 0x1003f84e
cmp eax, 0x66b4f516
je 0x1003f864
cmp eax, 0x78a4e0aa
jne 0x1003f753
mov eax, 0x96d4ff8b
jmp 0x1003f753
cmp eax, 0x96df4be3
jle 0x1003f82a
cmp eax, 0x96df4be4
je 0x1003f8a1
cmp eax, 0x9c5ba4da
je 0x1003f8c0
cmp eax, 0xf88f92bc
jne 0x1003f753
lea ecx, [esp + 0x54]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
mov eax, 0x528c9fab
mov dword [esp + 0x18], ecx
mov dword [esp + 4], 0x52
cmp eax, 0x424a2f1e
je 0x1003f8d6
cmp eax, 0x528c9fab
jne 0x1003f7ce
mov eax, dword [esp + 4]
mov ecx, eax
and eax, 0xcf64629a
not ecx
and ecx, 0x309b9d65
or eax, ecx
xor eax, 0x309b9d3d
mov dword [esp], eax
mov eax, 0x424a2f1e
jmp 0x1003f7ce
cmp eax, 0x3f03f610
je 0x1003f929
cmp eax, 0x4195ebed
je 0x1003f95d
cmp eax, 0xcbb6c12
jne 0x1003f753
jmp 0x10040b96
cmp eax, 0x852d42fc
je 0x1003f9b2
cmp eax, 0x96d4ff8b
jne 0x1003f753
mov eax, dword [esp + 0x28]
mov eax, 0xcbb6c12
jmp 0x1003f753
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
mov eax, 0x96df4be4
mov dword [esp + 0x24], ecx
jmp 0x1003f753
mov eax, dword [esp + 0x38]
xor ecx, ecx
push ecx
push ebp
push ecx
push 0x20019
push ecx
push ecx
push ecx
push dword [esp + 0xac]
push dword [esp + 0xac]
call eax
mov dword [esp + 0x24], eax
test eax, eax
mov ecx, 0xf88f92bc
mov eax, dword [esp + 0x2c]
mov eax, 0x96df4be4
cmove eax, ecx
jmp 0x1003f753
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x20], 0
mov ecx, 0x96d4ff8b
mov dword [esp + 0x44], eax
mov eax, 0x9c5ba4da
cmove eax, ecx
jmp 0x1003f753
lea eax, [esp + 0x48]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov eax, 0x852d42fc
jmp 0x1003f753
mov eax, dword [esp]
mov ecx, eax
and al, 0xa7
not cl
and cl, 0x58
or al, cl
mov ecx, dword [esp + 0x18]
mov byte [ecx], al
mov ecx, 0x528c9fab
mov eax, dword [esp + 0x18]
mov dword [esp + 4], 0x65
cmp ecx, 0x424a2f1e
je 0x1003f9f3
cmp ecx, 0x528c9fab
jne 0x1003f8fb
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xffffffa7
not edx
and edx, 0x58
or ecx, edx
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1003f8fb
mov eax, dword [esp + 0x3c]
push dword [esp + 0x9c]
push dword [esp + 0x9c]
mov ecx, 0
push ecx
push ecx
push dword [esp + 0xa4]
push dword [esp + 0x34]
call eax
mov dword [esp + 0x40], eax
mov eax, 0x5ec2f6f1
jmp 0x1003f753
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x2c]
mov eax, 0x528c9fab
mov dword [esp + 0x10], edi
mov dword [esp + 4], 0x52
cmp eax, 0x424a2f1e
je 0x1003fa4c
cmp eax, 0x528c9fab
jne 0x1003f986
mov eax, dword [esp + 4]
mov ecx, eax
and eax, 0xffffffa7
not ecx
and ecx, 0x58
or eax, ecx
mov dword [esp], eax
mov eax, 0x424a2f1e
jmp 0x1003f986
lea eax, [esp + 0x48]
mov dword [esp + 4], 0x52
mov dword [esp + 0x10], eax
mov eax, 0x528c9fab
cmp eax, 0x424a2f1e
je 0x1003fa9f
cmp eax, 0x528c9fab
jne 0x1003f9c7
mov eax, dword [esp + 4]
mov ecx, eax
and eax, 0xffffffa7
not ecx
and ecx, 0x58
or eax, ecx
mov dword [esp], eax
mov eax, 0x424a2f1e
jmp 0x1003f9c7
mov ecx, dword [esp]
mov edx, ecx
and cl, 0xa6
not dl
and dl, 0x59
or cl, dl
mov byte [eax + 1], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x67
cmp ecx, 0x424a2f1e
je 0x1003faf4
cmp ecx, 0x528c9fab
jne 0x1003fa12
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xa89184ed
not edx
and edx, 0x576e7b12
or ecx, edx
xor ecx, 0x576e7b4a
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1003fa12
mov eax, dword [esp]
mov ecx, eax
and al, 0xa7
not cl
and cl, 0x58
or al, cl
mov ecx, dword [esp + 0x10]
mov byte [ecx], al
mov ecx, 0x528c9fab
mov eax, dword [esp + 0x10]
mov dword [esp + 4], 0x65
cmp ecx, 0x424a2f1e
je 0x1003fb4d
cmp ecx, 0x528c9fab
jne 0x1003fa71
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xffffffa7
not edx
and edx, 0x58
or ecx, edx
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1003fa71
mov eax, dword [esp]
mov ecx, eax
and al, 0x3f
not cl
and cl, 0xc0
or al, cl
mov ecx, dword [esp + 0x10]
xor al, 0x98
mov byte [ecx], al
mov ecx, 0x528c9fab
mov eax, dword [esp + 0x10]
mov dword [esp + 4], 0x65
cmp ecx, 0x424a2f1e
je 0x1003ffed
cmp ecx, 0x528c9fab
jne 0x1003fac6
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xffffffa7
not edx
and edx, 0x58
or ecx, edx
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1003fac6
mov ecx, dword [esp]
mov edx, ecx
and cl, 0xa5
not dl
and dl, 0x5a
or cl, dl
mov byte [eax + 2], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x51
cmp ecx, 0x424a2f1e
je 0x10040049
cmp ecx, 0x528c9fab
jne 0x1003fb13
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x513f6fb
not edx
and edx, 0xfaec0904
or ecx, edx
xor ecx, 0xfaec095c
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1003fb13
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x13
not dl
and dl, 0xec
or cl, dl
xor cl, 0xb5
mov byte [eax + 1], cl
add eax, 2
mov ecx, 0x67bf40bf
mov dword [esp + 0xc], eax
cmp ecx, 0x45ff9a16
jg 0x1003fb8b
cmp ecx, 0xd8f9e4de
je 0x1003fbde
cmp ecx, 0xb4abeac
jne 0x1003fb6e
jmp 0x10040099
cmp ecx, 0x45ff9a17
je 0x1003fbf8
cmp ecx, 0x67bf40bf
jne 0x1003fb6e
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x67
cmp ecx, 0x424a2f1e
je 0x1003fc12
cmp ecx, 0x528c9fab
jne 0x1003fba8
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x603f570f
not edx
and edx, 0x9fc0a8f0
or ecx, edx
xor ecx, 0x9fc0a8a8
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1003fba8
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
add ecx, 0x10
inc eax
mov dword [esp + 0x14], ecx
mov ecx, 0x45ff9a17
jmp 0x1003fb6e
mov byte [eax], 0
inc eax
mov ecx, 0x45ff9a17
mov edx, 0xb4abeac
cmp eax, dword [esp + 0x14]
cmove ecx, edx
jmp 0x1003fb6e
mov ecx, dword [esp]
mov edx, ecx
and cl, 0xa5
not dl
and dl, 0x5a
or cl, dl
mov edx, dword [esp + 0xc]
mov byte [edx], cl
mov edx, 0x528c9fab
mov ecx, dword [esp + 0xc]
mov dword [esp + 4], 0x43
cmp edx, 0x424a2f1e
je 0x1003fc62
cmp edx, 0x528c9fab
jne 0x1003fc38
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0xffffffa7
not ebx
and ebx, 0x58
or edx, ebx
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003fc38
mov edx, dword [esp]
mov ebx, edx
and dl, 0x5a
not bl
and bl, 0xa5
or dl, bl
xor dl, 0xfe
mov byte [ecx + 1], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x72
cmp edx, 0x424a2f1e
je 0x1003fcba
cmp edx, 0x528c9fab
jne 0x1003fc84
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0xc2de6c98
not ebx
and ebx, 0x3d219367
or edx, ebx
xor edx, 0x3d21933f
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003fc84
mov edx, dword [esp]
mov ebx, edx
and dl, 0xd9
not bl
and bl, 0x26
or dl, bl
xor dl, 0x7a
mov byte [ecx + 2], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x65
cmp edx, 0x424a2f1e
je 0x1003fd06
cmp edx, 0x528c9fab
jne 0x1003fcdc
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0xffffffa7
not ebx
and ebx, 0x58
or edx, ebx
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003fcdc
mov edx, dword [esp]
mov ebx, edx
and dl, 0xa2
not bl
and bl, 0x5d
or dl, bl
mov byte [ecx + 3], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x61
cmp edx, 0x424a2f1e
je 0x1003fd4f
cmp edx, 0x528c9fab
jne 0x1003fd25
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0xffffffa7
not ebx
and ebx, 0x58
or edx, ebx
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003fd25
mov edx, dword [esp]
mov ebx, edx
and dl, 0xa1
not bl
and bl, 0x5e
or dl, bl
mov byte [ecx + 4], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x74
cmp edx, 0x424a2f1e
je 0x1003fda4
cmp edx, 0x528c9fab
jne 0x1003fd6e
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0x7707e9a0
not ebx
and ebx, 0x88f8165f
or edx, ebx
xor edx, 0x88f81607
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003fd6e
mov edx, dword [esp]
mov ebx, edx
and dl, 0xa0
not bl
and bl, 0x5f
or dl, bl
mov byte [ecx + 5], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x65
cmp edx, 0x424a2f1e
je 0x1003fded
cmp edx, 0x528c9fab
jne 0x1003fdc3
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0xffffffa7
not ebx
and ebx, 0x58
or edx, ebx
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003fdc3
mov edx, dword [esp]
mov ebx, edx
and dl, 0xeb
not bl
and bl, 0x14
or dl, bl
xor dl, 0x74
mov byte [ecx + 6], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x4b
cmp edx, 0x424a2f1e
je 0x1003fe45
cmp edx, 0x528c9fab
jne 0x1003fe0f
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0x203d8b8c
not ebx
and ebx, 0xdfc27473
or edx, ebx
xor edx, 0xdfc2742b
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003fe0f
mov edx, dword [esp]
mov ebx, edx
and dl, 0x9e
not bl
and bl, 0x61
or dl, bl
mov byte [ecx + 7], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x65
cmp edx, 0x424a2f1e
je 0x1003fe8e
cmp edx, 0x528c9fab
jne 0x1003fe64
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0xffffffa7
not ebx
and ebx, 0x58
or edx, ebx
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003fe64
mov edx, dword [esp]
mov ebx, edx
and dl, 0x9d
not bl
and bl, 0x62
or dl, bl
mov byte [ecx + 8], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x79
cmp edx, 0x424a2f1e
je 0x1003fed7
cmp edx, 0x528c9fab
jne 0x1003fead
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0xffffffa7
not ebx
and ebx, 0x58
or edx, ebx
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003fead
mov edx, dword [esp]
mov ebx, edx
and dl, 0x9c
not bl
and bl, 0x63
or dl, bl
mov byte [ecx + 9], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x45
cmp edx, 0x424a2f1e
je 0x1003ff20
cmp edx, 0x528c9fab
jne 0x1003fef6
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0xffffffa7
not ebx
and ebx, 0x58
or edx, ebx
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003fef6
mov edx, dword [esp]
mov ebx, edx
and dl, 0x4f
not bl
and bl, 0xb0
or dl, bl
xor dl, 0xd4
mov byte [ecx + 0xa], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x78
cmp edx, 0x424a2f1e
je 0x1003ff6c
cmp edx, 0x528c9fab
jne 0x1003ff42
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0xffffffa7
not ebx
and ebx, 0x58
or edx, ebx
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003ff42
mov edx, dword [esp]
mov ebx, edx
and dl, 0x84
not bl
and bl, 0x7b
or dl, bl
xor dl, 0x1e
mov byte [ecx + 0xb], dl
add ecx, 0xc
mov dword [esp + 4], 0x57
mov dword [esp + 8], ecx
mov ecx, 0x528c9fab
cmp ecx, 0x424a2f1e
je 0x1003ffcb
cmp ecx, 0x528c9fab
jne 0x1003ff95
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x9f44c376
not edx
and edx, 0x60bb3c89
or ecx, edx
xor ecx, 0x60bb3cd1
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1003ff95
mov ecx, dword [esp]
mov ebx, dword [esp + 8]
mov edx, ecx
and cl, 0x59
not dl
and dl, 0xa6
or cl, dl
xor cl, 0xc0
mov byte [ebx], cl
mov ecx, 0xd8f9e4de
jmp 0x1003fb6e
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x97
not dl
and dl, 0x68
or cl, dl
xor cl, 0x31
mov byte [eax + 1], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x67
cmp ecx, 0x424a2f1e
je 0x10040197
cmp ecx, 0x528c9fab
jne 0x1004000f
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x3b19bc32
not edx
and edx, 0xc4e643cd
or ecx, edx
xor ecx, 0xc4e64395
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1004000f
mov ecx, dword [esp]
mov edx, ecx
and cl, 0xd2
not dl
and dl, 0x2d
or cl, dl
xor cl, 0x76
mov byte [eax + 3], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x75
cmp ecx, 0x424a2f1e
je 0x100401f3
cmp ecx, 0x528c9fab
jne 0x1004006b
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xffffffa7
not edx
and edx, 0x58
or ecx, edx
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1004006b
xor eax, eax
mov ecx, 0x3747aa57
cmp ecx, 0x6a4ab34
jle 0x100400cb
cmp ecx, 0x3747aa56
jg 0x100400ec
cmp ecx, 0x6a4ab35
je 0x10040114
cmp ecx, 0x22e977b4
jne 0x100400a0
mov dword [esp + 0x18], edi
mov ecx, 0x8057b969
jmp 0x100400a0
cmp ecx, 0x8057b969
je 0x10040132
cmp ecx, 0xd76f7b91
je 0x1004024c
cmp ecx, 0xfa365b32
jne 0x100400a0
jmp 0x10040174
cmp ecx, 0x6fbf5fe7
je 0x1004014c
cmp ecx, 0x3747aa57
jne 0x100400a0
mov dword [esp], eax
mov edx, 0x6a4ab35
mov ecx, dword [esp]
cmp ecx, 0xf
mov ecx, 0x22e977b4
cmovb ecx, edx
jmp 0x100400a0
mov ecx, dword [esp]
add ecx, edi
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
movsx ecx, byte [ecx]
mov dword [esp + 8], ecx
mov ecx, 0x6fbf5fe7
jmp 0x100400a0
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0xf], 0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
mov ecx, 0xd76f7b91
jmp 0x100400a0
mov ecx, dword [esp + 8]
mov edx, ecx
and ecx, 0xffffffa7
not edx
and edx, 0x58
or ecx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp]
add ecx, 0x58
mov dword [esp + 4], ecx
mov ecx, 0xfa365b32
jmp 0x100400a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
or eax, edx
mov edx, dword [esp + 0xc]
mov byte [edx], al
mov eax, dword [esp]
inc eax
jmp 0x1004009b
mov ecx, dword [esp]
mov edx, ecx
and cl, 0xf1
not dl
and dl, 0xe
or cl, dl
xor cl, 0x54
mov byte [eax + 2], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x43
cmp ecx, 0x424a2f1e
je 0x10040263
cmp ecx, 0x528c9fab
jne 0x100401b9
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x466f5f65
not edx
and edx, 0xb990a09a
or ecx, edx
xor ecx, 0xb990a0c2
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x100401b9
mov ecx, dword [esp]
mov edx, ecx
and cl, 0xa3
not dl
and dl, 0x5c
or cl, dl
mov byte [eax + 4], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x65
cmp ecx, 0x424a2f1e
je 0x100402bc
cmp ecx, 0x528c9fab
jne 0x10040212
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x941f4582
not edx
and edx, 0x6be0ba7d
or ecx, edx
xor ecx, 0x6be0ba25
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x10040212
mov ecx, dword [esp + 0x10]
call fcn.1002d5ea
mov dword [esp + 0x38], eax
mov eax, 0x66b4f516
jmp 0x1003f753
mov ecx, dword [esp]
mov edx, ecx
and cl, 0xa4
not dl
and dl, 0x5b
or cl, dl
mov byte [eax + 3], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x6c
cmp ecx, 0x424a2f1e
je 0x10040318
cmp ecx, 0x528c9fab
jne 0x10040282
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xcc893e8f
not edx
and edx, 0x3376c170
or ecx, edx
xor ecx, 0x3376c128
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x10040282
mov ecx, dword [esp]
mov edx, ecx
and cl, 0xab
not dl
and dl, 0x54
or cl, dl
xor cl, 9
mov byte [eax + 5], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x72
cmp ecx, 0x424a2f1e
je 0x100405ae
cmp ecx, 0x528c9fab
jne 0x100402de
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xc7fa08cf
not edx
and edx, 0x3805f730
or ecx, edx
xor ecx, 0x3805f768
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x100402de
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x88
not dl
and dl, 0x77
or cl, dl
xor cl, 0x2b
mov byte [eax + 4], cl
add eax, 5
mov ecx, 0xa72a5f75
mov byte [esp + 0x1f], 0x6f
mov dword [esp + 0xc], eax
cmp ecx, 0x37d458e5
jg 0x1004035b
cmp ecx, 0xa72a5f75
je 0x100403b3
cmp ecx, 0x22f8a9fe
jne 0x1004033e
jmp 0x1004095d
cmp ecx, 0x37d458e6
je 0x100403ef
cmp ecx, 0x6b4a3e4f
jne 0x1004033e
movsx eax, byte [esp + 0x18]
mov dword [esp + 4], eax
mov eax, 0x528c9fab
cmp eax, 0x424a2f1e
je 0x10040409
cmp eax, 0x528c9fab
jne 0x1004037d
mov eax, dword [esp + 4]
mov ecx, eax
and eax, 0x4a7528fc
not ecx
and ecx, 0xb58ad703
or eax, ecx
xor eax, 0xb58ad75b
mov dword [esp], eax
mov eax, 0x424a2f1e
jmp 0x1004037d
movsx ecx, byte [esp + 0x1f]
mov dword [esp + 4], ecx
mov ecx, 0x528c9fab
cmp ecx, 0x424a2f1e
je 0x1004045c
cmp ecx, 0x528c9fab
jne 0x100403c1
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xffffffa7
not edx
and edx, 0x58
or ecx, edx
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x100403c1
mov byte [eax], 0
inc eax
mov ecx, 0x37d458e6
mov edx, 0x22f8a9fe
cmp eax, dword [esp + 0x14]
cmove ecx, edx
jmp 0x1004033e
mov eax, dword [esp]
mov ecx, eax
and al, 0xa0
not cl
and cl, 0x5f
or al, cl
mov ecx, dword [esp + 8]
mov byte [ecx], al
mov ecx, 0x528c9fab
mov eax, dword [esp + 8]
mov dword [esp + 4], 0x4b
cmp ecx, 0x424a2f1e
je 0x100404bb
cmp ecx, 0x528c9fab
jne 0x1004042e
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xffffffa7
not edx
and edx, 0x58
or ecx, edx
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1004042e
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x67
not dl
and dl, 0x98
or cl, dl
mov edx, dword [esp + 0xc]
xor cl, 0xc5
mov byte [edx], cl
mov edx, 0x528c9fab
mov ecx, dword [esp + 0xc]
mov dword [esp + 4], 0x73
cmp edx, 0x424a2f1e
je 0x10040507
cmp edx, 0x528c9fab
jne 0x10040485
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0x14209953
not ebx
and ebx, 0xebdf66ac
or edx, ebx
xor edx, 0xebdf66f4
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x10040485
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x31
not dl
and dl, 0xce
or cl, dl
xor cl, 0xae
mov byte [eax + 1], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x65
cmp ecx, 0x424a2f1e
je 0x1004052f
cmp ecx, 0x528c9fab
jne 0x100404dd
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xffffffa7
not edx
and edx, 0x58
or ecx, edx
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x100404dd
mov edx, dword [esp]
mov ebx, edx
and dl, 0xa1
not bl
and bl, 0x5e
or dl, bl
mov byte [ecx + 1], dl
add ecx, 2
mov byte [esp + 0x18], 0x65
mov dword [esp + 8], ecx
mov ecx, 0x6b4a3e4f
jmp 0x1004033e
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x9e
not dl
and dl, 0x61
or cl, dl
mov byte [eax + 2], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x79
cmp ecx, 0x424a2f1e
je 0x10040584
cmp ecx, 0x528c9fab
jne 0x1004054e
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x8ef03d9
not edx
and edx, 0xf710fc26
or ecx, edx
xor ecx, 0xf710fc7e
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1004054e
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x9d
not dl
and dl, 0x62
or cl, dl
mov byte [eax + 3], cl
add eax, 4
mov ecx, dword [esp + 0x10]
add ecx, 0xc
mov dword [esp + 0x14], ecx
mov ecx, 0x37d458e6
jmp 0x1004033e
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x92
not dl
and dl, 0x6d
or cl, dl
xor cl, 0x33
mov byte [eax + 6], cl
add eax, 7
mov ecx, 0x6e5a4a5b
mov dword [esp + 0xc], 0x1009f830
mov dword [esp + 0x10], eax
cmp ecx, 0x6e5a4a5a
jg 0x100405f4
cmp ecx, 0x891e6125
je 0x10040652
cmp ecx, 0xc3c8f65f
jne 0x100405d7
jmp 0x10040a52
cmp ecx, 0x7ed2e351
je 0x1004069d
cmp ecx, 0x6e5a4a5b
jne 0x100405d7
mov ecx, dword [esp + 0xc]
movsx ecx, byte [ecx]
mov dword [esp + 4], ecx
mov ecx, 0x528c9fab
cmp ecx, 0x424a2f1e
je 0x100406b7
cmp ecx, 0x528c9fab
jne 0x10040618
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xf2685c7a
not edx
and edx, 0xd97a385
or ecx, edx
xor ecx, 0xd97a3dd
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x10040618
mov eax, dword [esp + 8]
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x6c
cmp ecx, 0x424a2f1e
je 0x10040716
cmp ecx, 0x528c9fab
jne 0x10040663
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x9469df6a
not edx
and edx, 0x6b962095
or ecx, edx
xor ecx, 0x6b9620cd
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x10040663
mov byte [eax], 0
inc eax
mov ecx, 0x7ed2e351
mov edx, 0xc3c8f65f
cmp eax, dword [esp + 0x14]
cmove ecx, edx
jmp 0x100405d7
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x37
not dl
and dl, 0xc8
or cl, dl
mov edx, dword [esp + 0x10]
xor cl, 0x97
mov byte [edx], cl
mov edx, 0x528c9fab
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], 0x56
cmp edx, 0x424a2f1e
je 0x10040763
cmp edx, 0x528c9fab
jne 0x100406e0
mov edx, dword [esp + 4]
mov ebx, edx
and edx, 0x44b05220
not ebx
and ebx, 0xbb4faddf
or edx, ebx
xor edx, 0xbb4fad87
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x100406e0
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x9d
not dl
and dl, 0x62
or cl, dl
mov byte [eax + 1], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x75
cmp ecx, 0x424a2f1e
je 0x100407c6
cmp ecx, 0x528c9fab
jne 0x10040735
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xffffffa7
not edx
and edx, 0x58
or ecx, edx
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x10040735
mov edx, dword [esp]
mov ebx, edx
and dl, 0x6b
not bl
and bl, 0x94
or dl, bl
xor dl, 0xf4
mov byte [ecx + 1], dl
add ecx, 2
mov dword [esp + 4], 0x61
mov dword [esp + 8], ecx
mov ecx, 0x528c9fab
cmp ecx, 0x424a2f1e
je 0x1004081b
cmp ecx, 0x528c9fab
jne 0x1004078c
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x7083dc3f
not edx
and edx, 0x8f7c23c0
or ecx, edx
xor ecx, 0x8f7c2398
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1004078c
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x9c
not dl
and dl, 0x63
or cl, dl
mov byte [eax + 2], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x65
cmp ecx, 0x424a2f1e
je 0x1004083a
cmp ecx, 0x528c9fab
jne 0x100407e5
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x346ddf0
not edx
and edx, 0xfcb9220f
or ecx, edx
xor ecx, 0xfcb92257
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x100407e5
mov ecx, dword [esp]
mov ebx, dword [esp + 8]
mov edx, ecx
and cl, 0x9e
not dl
and dl, 0x61
or cl, dl
mov byte [ebx], cl
mov ecx, 0x891e6125
jmp 0x100405d7
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x9b
not dl
and dl, 0x64
or cl, dl
mov byte [eax + 3], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x45
cmp ecx, 0x424a2f1e
je 0x1004088f
cmp ecx, 0x528c9fab
jne 0x10040859
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xc7b4164d
not edx
and edx, 0x384be9b2
or ecx, edx
xor ecx, 0x384be9ea
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x10040859
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x9a
not dl
and dl, 0x65
or cl, dl
mov byte [eax + 4], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x78
cmp ecx, 0x424a2f1e
je 0x100408d8
cmp ecx, 0x528c9fab
jne 0x100408ae
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xffffffa7
not edx
and edx, 0x58
or ecx, edx
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x100408ae
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x3f
not dl
and dl, 0xc0
or cl, dl
xor cl, 0xa6
mov byte [eax + 5], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x57
cmp ecx, 0x424a2f1e
je 0x10040930
cmp ecx, 0x528c9fab
jne 0x100408fa
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x91cc7ebe
not edx
and edx, 0x6e338141
or ecx, edx
xor ecx, 0x6e338119
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x100408fa
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x1c
not dl
and dl, 0xe3
or cl, dl
xor cl, 0x84
mov byte [eax + 6], cl
add eax, 7
mov ecx, dword [esp + 0x18]
add ecx, 0x11
mov dword [esp + 0x14], ecx
mov ecx, 0x7ed2e351
jmp 0x100405d7
xor eax, eax
mov ecx, 0x4fd7d4d7
cmp ecx, 0x4f18c49f
jle 0x1004099c
cmp ecx, 0x76945186
jg 0x100409c7
cmp ecx, 0x4f18c4a0
je 0x100409ed
cmp ecx, 0x4fd7d4d7
jne 0x10040964
mov dword [esp], eax
mov edx, 0xfe6707e1
mov ecx, dword [esp]
cmp ecx, 0xb
mov ecx, 0x1a8ae65
cmovb ecx, edx
jmp 0x10040964
cmp ecx, 0xa4e8cbd9
je 0x10040a49
cmp ecx, 0xfe6707e1
je 0x10040a07
cmp ecx, 0x1a8ae65
jne 0x10040964
lea ecx, [esp + 0x48]
mov dword [esp + 8], ecx
mov ecx, 0x4f18c4a0
jmp 0x10040964
cmp ecx, 0x76945187
je 0x10040b53
cmp ecx, 0x7bf894e4
jne 0x10040964
mov ecx, dword [esp]
inc ecx
mov dword [esp + 4], ecx
mov ecx, 0xa4e8cbd9
jmp 0x10040964
mov ecx, dword [esp + 8]
mov byte [ecx + 0xb], 0
mov ecx, dword [esp + 8]
mov dword [esp + 0x14], ecx
mov ecx, 0x76945187
jmp 0x10040964
mov ecx, dword [esp]
mov bl, byte [esp + ecx + 0x48]
mov edx, ebx
mov bh, bl
xor bl, 0x24
not dl
and bh, 0x49
and bl, 0x34
and dl, 0x82
or bh, dl
mov edx, dword [esp]
xor bh, 0xca
or bl, bh
add dl, 0x58
mov bh, dl
and dl, 0xcb
not bh
and bh, 0x34
or dl, bh
xor dl, bl
mov byte [esp + ecx + 0x48], dl
mov ecx, 0x7bf894e4
jmp 0x10040964
mov eax, dword [esp + 4]
jmp 0x1004095f
xor eax, eax
mov ecx, 0x938a7a1f
cmp ecx, 0x2f8f4450
jle 0x10040a8f
cmp ecx, 0x635fe2be
jg 0x10040ab6
cmp ecx, 0x2f8f4451
je 0x10040b78
cmp ecx, 0x4d55d30a
jne 0x10040a59
mov ecx, dword [esp + 0xc]
add ecx, 0x10
mov dword [esp + 8], ecx
mov ecx, 0x2f8f4451
jmp 0x10040a59
cmp ecx, 0x938a7a1f
je 0x10040afd
cmp ecx, 0xc4ccd92b
je 0x10040b18
cmp ecx, 0xd25c0b32
jne 0x10040a59
lea ecx, [esp + 0x54]
mov dword [esp + 0xc], ecx
mov ecx, 0x4d55d30a
jmp 0x10040a59
cmp ecx, 0x635fe2bf
je 0x10040b4a
cmp ecx, 0x648d0e57
jne 0x10040a59
mov ecx, dword [esp]
lea edx, [esp + 0x54]
add ecx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
mov cl, byte [ecx]
mov edx, ecx
and cl, 0x36
not dl
and dl, 0xc9
or cl, dl
xor cl, 0x91
movsx ecx, cl
mov dword [esp + 4], ecx
mov ecx, 0xc4ccd92b
jmp 0x10040a59
mov dword [esp], eax
mov edx, 0x648d0e57
mov ecx, dword [esp]
cmp ecx, 0x10
mov ecx, 0xd25c0b32
cmovb ecx, edx
jmp 0x10040a59
mov ecx, dword [esp]
mov edx, dword [esp + 4]
mov ebx, edx
add ecx, 0x58
and edx, esi
not ebx
and ebx, 0x4f
or edx, ebx
mov ebx, ecx
and ecx, esi
not ebx
and ebx, 0x4f
or ecx, ebx
mov ebx, dword [esp + 0x14]
xor ecx, edx
mov byte [ebx], cl
mov ecx, 0x635fe2bf
jmp 0x10040a59
mov eax, dword [esp]
inc eax
jmp 0x10040a54
mov ecx, dword [esp + 0x14]
call fcn.1002d5ea
push dword [esp + 0x20]
call eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], 0
mov eax, 0x78a4e0aa
jmp 0x1003f753
mov eax, dword [esp + 8]
mov byte [eax], 0
mov ecx, dword [esp + 0xc]
call fcn.1002d5ea
mov dword [esp + 0x3c], eax
mov eax, 0x3f03f610
jmp 0x1003f753
mov eax, dword [esp + 0x44]
add esp, 0x78
pop esi
pop edi
pop ebx
pop ebp
ret