Function at 0x100374b4
Capabilities:
Authenticate hmac

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
lea eax, [esp + 0x68]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov ecx, 0x528c9fab
mov dword [esp + 0x18], eax
mov dword [esp + 4], 0x47
cmp ecx, 0x424a2f1e
je 0x10037502
cmp ecx, 0x528c9fab
jne 0x100374d8
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 0x100374d8
mov ecx, dword [esp]
mov edx, ecx
and cl, 0xa7
not dl
and dl, 0x58
or cl, dl
mov edx, dword [esp + 0x18]
mov byte [edx], cl
mov edx, 0x528c9fab
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], 0x65
cmp edx, 0x424a2f1e
je 0x10037552
cmp edx, 0x528c9fab
jne 0x10037528
mov edx, dword [esp + 4]
mov esi, edx
and edx, 0xffffffa7
not esi
and esi, 0x58
or edx, esi
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x10037528
mov edx, dword [esp]
mov ebx, edx
and dl, 0xc9
not bl
and bl, 0x36
or dl, bl
xor dl, 0x6f
mov byte [ecx + 1], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x74
cmp edx, 0x424a2f1e
je 0x1003759e
cmp edx, 0x528c9fab
jne 0x10037574
mov edx, dword [esp + 4]
mov esi, edx
and edx, 0xffffffa7
not esi
and esi, 0x58
or edx, esi
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x10037574
mov edx, dword [esp]
mov ebx, edx
and dl, 0xa4
not bl
and bl, 0x5b
or dl, bl
xor dl, 1
mov byte [ecx + 2], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x4d
cmp edx, 0x424a2f1e
je 0x100375ea
cmp edx, 0x528c9fab
jne 0x100375c0
mov edx, dword [esp + 4]
mov esi, edx
and edx, 0xffffffa7
not esi
and esi, 0x58
or edx, esi
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x100375c0
mov edx, dword [esp]
mov ebx, edx
and dl, 0x1c
not bl
and bl, 0xe3
or dl, bl
xor dl, 0xb8
mov byte [ecx + 3], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x6f
cmp edx, 0x424a2f1e
je 0x10037642
cmp edx, 0x528c9fab
jne 0x1003760c
mov edx, dword [esp + 4]
mov esi, edx
and edx, 0x2d5adc31
not esi
and esi, 0xd2a523ce
or edx, esi
xor edx, 0xd2a52396
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003760c
mov edx, dword [esp]
mov ebx, edx
and dl, 0xa3
not bl
and bl, 0x5c
or dl, bl
mov byte [ecx + 4], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x64
cmp edx, 0x424a2f1e
je 0x10037697
cmp edx, 0x528c9fab
jne 0x10037661
mov edx, dword [esp + 4]
mov esi, edx
and edx, 0x863816c6
not esi
and esi, 0x79c7e939
or edx, esi
xor edx, 0x79c7e961
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x10037661
mov edx, dword [esp]
mov ebx, edx
and dl, 0x99
not bl
and bl, 0x66
or dl, bl
xor dl, 0x3b
mov byte [ecx + 5], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x75
cmp edx, 0x424a2f1e
je 0x100376e3
cmp edx, 0x528c9fab
jne 0x100376b9
mov edx, dword [esp + 4]
mov esi, edx
and edx, 0xffffffa7
not esi
and esi, 0x58
or edx, esi
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x100376b9
mov edx, dword [esp]
mov esi, 0x6e5a4a5b
mov ebp, 0xc3c8f65f
mov ebx, edx
and dl, 0xbd
not bl
and bl, 0x42
or dl, bl
xor dl, 0x1c
mov byte [ecx + 6], dl
add ecx, 7
mov dword [esp + 0xc], 0x1009f76f
mov dword [esp + 0x14], ecx
cmp esi, 0x6e5a4a5a
jg 0x1003772e
cmp esi, 0x891e6125
je 0x1003778c
cmp esi, 0xc3c8f65f
jne 0x10037711
jmp 0x10037a79
cmp esi, 0x7ed2e351
je 0x100377cb
cmp esi, 0x6e5a4a5b
jne 0x10037711
mov esi, dword [esp + 0xc]
movsx esi, byte [esi]
mov dword [esp + 4], esi
mov esi, 0x528c9fab
cmp esi, 0x424a2f1e
je 0x100377e0
cmp esi, 0x528c9fab
jne 0x10037752
mov esi, dword [esp + 4]
mov edi, esi
and esi, 0x4a4158ee
not edi
and edi, 0xb5bea711
or esi, edi
xor esi, 0xb5bea749
mov dword [esp], esi
mov esi, 0x424a2f1e
jmp 0x10037752
mov edx, dword [esp + 8]
mov esi, 0x528c9fab
mov dword [esp + 4], 0x61
cmp esi, 0x424a2f1e
je 0x10037843
cmp esi, 0x528c9fab
jne 0x1003779d
mov ecx, dword [esp + 4]
mov esi, ecx
and ecx, 0xffffffa7
not esi
and esi, 0x58
or ecx, esi
mov esi, 0x424a2f1e
mov dword [esp], ecx
jmp 0x1003779d
mov byte [edx], 0
inc edx
mov esi, 0x7ed2e351
cmp edx, dword [esp + 0x10]
cmove esi, ebp
jmp 0x10037711
mov ebx, dword [esp]
mov esi, dword [esp + 0x14]
mov edi, 0x528c9fab
mov ecx, ebx
and bl, 0x6e
not cl
and cl, 0x91
or bl, cl
xor bl, 0xce
mov byte [esi], bl
mov esi, dword [esp + 0x14]
mov dword [esp + 4], 0x65
cmp edi, 0x424a2f1e
je 0x10037898
cmp edi, 0x528c9fab
jne 0x10037809
mov ecx, dword [esp + 4]
mov edi, ecx
and ecx, 0xb5e35798
not edi
and edi, 0x4a1ca867
or ecx, edi
mov edi, 0x424a2f1e
xor ecx, 0x4a1ca83f
mov dword [esp], ecx
jmp 0x10037809
mov ebx, dword [esp]
mov esi, 0x528c9fab
mov ecx, ebx
and bl, 0x9d
not cl
and cl, 0x62
or bl, cl
mov byte [edx + 1], bl
mov dword [esp + 4], 0x6e
cmp esi, 0x424a2f1e
je 0x100378e8
cmp esi, 0x528c9fab
jne 0x10037862
mov ecx, dword [esp + 4]
mov esi, ecx
and ecx, 0x637e80b
not esi
and esi, 0xf9c817f4
or ecx, esi
mov esi, 0x424a2f1e
xor ecx, 0xf9c817ac
mov dword [esp], ecx
jmp 0x10037862
mov ebx, dword [esp]
mov ecx, ebx
and bl, 0x9f
not cl
and cl, 0x60
or bl, cl
mov byte [esi + 1], bl
add esi, 2
mov dword [esp + 4], 0x48
mov dword [esp + 8], esi
mov esi, 0x528c9fab
cmp esi, 0x424a2f1e
je 0x10037931
cmp esi, 0x528c9fab
jne 0x100378be
mov ecx, dword [esp + 4]
mov esi, ecx
and ecx, 0xffffffa7
not esi
and esi, 0x58
or ecx, esi
mov esi, 0x424a2f1e
mov dword [esp], ecx
jmp 0x100378be
mov ebx, dword [esp]
mov esi, 0x528c9fab
mov ecx, ebx
and bl, 0x9c
not cl
and cl, 0x63
or bl, cl
mov byte [edx + 2], bl
mov dword [esp + 4], 0x64
cmp esi, 0x424a2f1e
je 0x10037953
cmp esi, 0x528c9fab
jne 0x10037907
mov ecx, dword [esp + 4]
mov esi, ecx
and ecx, 0xffffffa7
not esi
and esi, 0x58
or ecx, esi
mov esi, 0x424a2f1e
mov dword [esp], ecx
jmp 0x10037907
mov ebx, dword [esp]
mov esi, dword [esp + 8]
mov ecx, ebx
and bl, 0x24
not cl
and cl, 0xdb
or bl, cl
xor bl, 0xba
mov byte [esi], bl
mov esi, 0x891e6125
jmp 0x10037711
mov ebx, dword [esp]
mov esi, 0x528c9fab
mov ecx, ebx
and bl, 0x9b
not cl
and cl, 0x64
or bl, cl
mov byte [edx + 3], bl
mov dword [esp + 4], 0x6c
cmp esi, 0x424a2f1e
je 0x100379a8
cmp esi, 0x528c9fab
jne 0x10037972
mov ecx, dword [esp + 4]
mov esi, ecx
and ecx, 0xa1abc80b
not esi
and esi, 0x5e5437f4
or ecx, esi
mov esi, 0x424a2f1e
xor ecx, 0x5e5437ac
mov dword [esp], ecx
jmp 0x10037972
mov ebx, dword [esp]
mov esi, 0x528c9fab
mov ecx, ebx
and bl, 7
not cl
and cl, 0xf8
or bl, cl
xor bl, 0x9d
mov byte [edx + 4], bl
mov dword [esp + 4], 0x65
cmp esi, 0x424a2f1e
je 0x10037a00
cmp esi, 0x528c9fab
jne 0x100379ca
mov ecx, dword [esp + 4]
mov esi, ecx
and ecx, 0x4103d801
not esi
and esi, 0xbefc27fe
or ecx, esi
mov esi, 0x424a2f1e
xor ecx, 0xbefc27a6
mov dword [esp], ecx
jmp 0x100379ca
mov ebx, dword [esp]
mov esi, 0x528c9fab
mov ecx, ebx
and bl, 0x9f
not cl
and cl, 0x60
or bl, cl
xor bl, 6
mov byte [edx + 5], bl
mov dword [esp + 4], 0x41
cmp esi, 0x424a2f1e
je 0x10037a4c
cmp esi, 0x528c9fab
jne 0x10037a22
mov ecx, dword [esp + 4]
mov esi, ecx
and ecx, 0xffffffa7
not esi
and esi, 0x58
or ecx, esi
mov esi, 0x424a2f1e
mov dword [esp], ecx
jmp 0x10037a22
mov ebx, dword [esp]
mov esi, 0x7ed2e351
mov ecx, ebx
and bl, 0x54
not cl
and cl, 0xab
or bl, cl
xor bl, 0xcc
mov byte [edx + 6], bl
add edx, 7
mov ecx, dword [esp + 0x18]
add ecx, 0x11
mov dword [esp + 0x10], ecx
jmp 0x10037711
xor edx, edx
mov ecx, 0x648d0e57
mov esi, 0x938a7a1f
cmp esi, 0x2f8f4450
jle 0x10037abb
cmp esi, 0x635fe2be
jg 0x10037ade
cmp esi, 0x2f8f4451
je 0x10037b62
cmp esi, 0x4d55d30a
jne 0x10037a85
mov esi, dword [esp + 0xc]
add esi, 0x10
mov dword [esp + 8], esi
mov esi, 0x2f8f4451
jmp 0x10037a85
cmp esi, 0x938a7a1f
je 0x10037b1d
cmp esi, 0xc4ccd92b
je 0x10037b33
cmp esi, 0xd25c0b32
jne 0x10037a85
mov dword [esp + 0xc], eax
mov esi, 0x4d55d30a
jmp 0x10037a85
cmp esi, 0x635fe2bf
je 0x10037b59
cmp esi, 0x648d0e57
jne 0x10037a85
mov esi, dword [esp]
add esi, eax
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x10]
mov bl, byte [esi]
mov bh, bl
and bl, 0x38
not bh
and bh, 0xc7
or bl, bh
xor bl, 0x9f
movsx esi, bl
mov dword [esp + 4], esi
mov esi, 0xc4ccd92b
jmp 0x10037a85
mov dword [esp], edx
mov esi, dword [esp]
cmp esi, 0x10
mov esi, 0xd25c0b32
cmovb esi, ecx
jmp 0x10037a85
mov ebx, dword [esp]
mov esi, dword [esp + 4]
mov edi, esi
add ebx, 0x58
not edi
and edi, ebx
not ebx
and ebx, esi
mov esi, dword [esp + 0x10]
or ebx, edi
mov byte [esi], bl
mov esi, 0x635fe2bf
jmp 0x10037a85
mov edx, dword [esp]
inc edx
jmp 0x10037a80
mov eax, dword [esp + 8]
mov byte [eax], 0
mov ecx, dword [esp + 0xc]
call fcn.1002d5ea
mov dword [esp + 0x3c], eax
lea ebx, [esp + 0x4c]
mov eax, 0xf7e57ebf
lea ebp, [esp + 0x58]
mov dword [esp + 0x28], ebx
cmp eax, 0xeb9008b1
jle 0x10037c05
cmp eax, 0x798b595
jle 0x10037c48
cmp eax, 0x17e3fc07
jle 0x10037cdf
cmp eax, 0x17e3fc08
je 0x10037d02
cmp eax, 0x4b877fa6
jne 0x10037b87
mov dword [esp + 0x30], ebp
mov eax, dword [esp + 0x30]
mov eax, 0x528c9fab
mov dword [esp + 0x1c], ebp
mov dword [esp + 4], 0x52
cmp eax, 0x424a2f1e
je 0x10037d2f
cmp eax, 0x528c9fab
jne 0x10037bcf
mov eax, dword [esp + 4]
mov ecx, eax
and eax, 0xcd09ab3b
not ecx
and ecx, 0x32f654c4
or eax, ecx
xor eax, 0x32f6549c
mov dword [esp], eax
mov eax, 0x424a2f1e
jmp 0x10037bcf
cmp eax, 0xc6df99a3
jg 0x10037caa
cmp eax, 0xa57b8935
je 0x10037d84
cmp eax, 0xb157811a
je 0x10037e85
cmp eax, 0xb2c1ed9a
jne 0x10037b87
cmp dword [esp + 0x48], 0
mov eax, 0x16c9a803
mov ecx, 0xc8af3d51
cmove eax, ecx
jmp 0x10037b87
cmp eax, 0xeb9008b2
je 0x10037ea0
cmp eax, 0xf65ce67f
je 0x10037cf6
cmp eax, 0xf7e57ebf
jne 0x10037b87
mov eax, dword [esp + 0x28]
mov eax, 0x528c9fab
mov dword [esp + 0x14], ebx
mov dword [esp + 4], 0x6e
cmp eax, 0x424a2f1e
je 0x10037ebf
cmp eax, 0x528c9fab
jne 0x10037c7e
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 0x10037c7e
cmp eax, 0xc6df99a4
je 0x10037cf6
cmp eax, 0xc8af3d51
je 0x10037f14
cmp eax, 0xe952cb1e
jne 0x10037b87
mov eax, dword [esp + 0x34]
push dword [esp + 0x44]
call eax
mov dword [esp + 0x48], eax
mov eax, 0xb2c1ed9a
jmp 0x10037b87
cmp eax, 0x16c9a803
je 0x10037cf6
cmp eax, 0x798b596
jne 0x10037b87
jmp 0x1003875e
mov eax, 0x798b596
xor esi, esi
jmp 0x10037b87
push dword [esp + 0x40]
push dword [esp + 0x30]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 0x34], eax
mov ecx, 0xf65ce67f
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x34], 0
mov eax, 0xb157811a
cmove eax, ecx
jmp 0x10037b87
mov eax, dword [esp]
mov ecx, eax
and al, 0x90
not cl
and cl, 0x6f
or al, cl
mov ecx, dword [esp + 0x1c]
xor al, 0x37
mov byte [ecx], al
mov ecx, 0x528c9fab
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0x74
cmp ecx, 0x424a2f1e
je 0x10037f21
cmp ecx, 0x528c9fab
jne 0x10037d56
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 0x10037d56
xor eax, eax
mov ecx, 0x6eee4d25
cmp ecx, 0x1f59e062
jle 0x10037ded
cmp ecx, 0x35b99c2c
jg 0x10037e07
cmp ecx, 0x1f59e063
je 0x10037f6e
cmp ecx, 0x2b7ddf91
jne 0x10037d8b
mov ecx, dword [esp]
add ecx, ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
mov cl, byte [ecx]
mov edx, ecx
and cl, 0x48
not dl
and dl, 0xb7
or cl, dl
mov edx, dword [esp]
xor cl, 0xef
movsx ecx, cl
add edx, 0x58
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
or ecx, edi
mov dword [esp + 0x10], ecx
mov ecx, 0x851ea7be
jmp 0x10037d8b
cmp ecx, 0x851ea7be
je 0x10037e36
cmp ecx, 0xb889e48b
je 0x10037e52
cmp ecx, 0xef0a4b51
jne 0x10037d8b
jmp 0x10037e7c
cmp ecx, 0x35b99c2d
je 0x10037e63
cmp ecx, 0x6eee4d25
jne 0x10037d8b
mov dword [esp], eax
mov edx, 0x2b7ddf91
mov ecx, dword [esp]
cmp ecx, 0xd
mov ecx, 0x35b99c2d
cmovb ecx, edx
jmp 0x10037d8b
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov byte [edx], cl
mov ecx, dword [esp]
inc ecx
mov dword [esp + 4], ecx
mov ecx, 0xef0a4b51
jmp 0x10037d8b
mov ecx, dword [esp + 0xc]
mov byte [ecx], 0
mov ecx, 0x1f59e063
jmp 0x10037d8b
mov dword [esp + 0x14], ebp
mov ecx, dword [esp + 0x14]
add ecx, 0xd
mov dword [esp + 0xc], ecx
mov ecx, 0xb889e48b
jmp 0x10037d8b
mov eax, dword [esp + 4]
jmp 0x10037d86
mov eax, dword [esp + 0x90]
mov dword [eax], 0x11c
mov dword [esp + 0x44], eax
mov eax, 0xe952cb1e
jmp 0x10037b87
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x2c], 0
mov eax, 0x4b877fa6
mov ecx, 0xc6df99a4
cmove eax, ecx
jmp 0x10037b87
mov eax, dword [esp]
mov ecx, eax
and al, 0x7c
not cl
and cl, 0x83
or al, cl
mov ecx, dword [esp + 0x14]
xor al, 0xdb
mov byte [ecx], al
mov ecx, 0x528c9fab
mov eax, dword [esp + 0x14]
mov dword [esp + 4], 0x74
cmp ecx, 0x424a2f1e
je 0x10037f80
cmp ecx, 0x528c9fab
jne 0x10037ee6
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 0x10037ee6
xor esi, esi
mov eax, 0x798b596
inc esi
jmp 0x10037b87
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], 0x6c
cmp ecx, 0x424a2f1e
je 0x10037fd1
cmp ecx, 0x528c9fab
jne 0x10037f40
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 0x10037f40
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov eax, 0x17e3fc08
jmp 0x10037b87
mov ecx, dword [esp]
mov edx, ecx
and cl, 0xa1
not dl
and dl, 0x5e
or cl, dl
xor cl, 7
mov byte [eax + 1], cl
add eax, 2
mov dword [esp + 4], 0x64
mov dword [esp + 0xc], eax
mov eax, 0x528c9fab
cmp eax, 0x424a2f1e
je 0x1003801e
cmp eax, 0x528c9fab
jne 0x10037fa9
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 0x10037fa9
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], 0x47
cmp ecx, 0x424a2f1e
je 0x100382ad
cmp ecx, 0x528c9fab
jne 0x10037ff0
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 0x10037ff0
mov eax, dword [esp]
mov dword [esp + 0x20], esi
mov ecx, eax
and al, 0xa5
not cl
and cl, 0x5a
or al, cl
mov ecx, 0xaaf39e98
mov byte [esp + 0x1c], al
cmp ecx, 0x5fd5b287
jg 0x10038056
cmp ecx, 0xaaf39e98
je 0x1003807d
cmp ecx, 0x3156ef09
jne 0x10038039
jmp 0x1003861b
cmp ecx, 0x5fd5b288
je 0x100380c2
cmp ecx, 0x745b755a
jne 0x10038039
mov byte [eax], 0
inc eax
mov ecx, 0x745b755a
mov edx, 0x3156ef09
cmp eax, dword [esp + 0x10]
cmove ecx, edx
jmp 0x10038039
mov ecx, dword [esp + 0xc]
mov dl, byte [esp + 0x1c]
mov byte [ecx], dl
mov edx, 0x528c9fab
mov ecx, dword [esp + 0xc]
mov dword [esp + 4], 0x6c
cmp edx, 0x424a2f1e
je 0x100380e6
cmp edx, 0x528c9fab
jne 0x10038098
mov edx, dword [esp + 4]
mov edi, edx
and edx, 0xffffffa7
not edi
and edi, 0x58
or edx, edi
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x10038098
mov eax, dword [esp + 8]
mov cl, byte [esp + 0x18]
mov byte [eax], cl
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
add ecx, 0xa
inc eax
mov dword [esp + 0x10], ecx
mov ecx, 0x745b755a
jmp 0x10038039
mov edx, dword [esp]
mov esi, ebp
mov ebp, ebx
mov ebx, edx
and dl, 0xa4
not bl
and bl, 0x5b
or dl, bl
mov byte [ecx + 1], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x6c
cmp edx, 0x424a2f1e
je 0x10038133
cmp edx, 0x528c9fab
jne 0x10038109
mov edx, dword [esp + 4]
mov edi, edx
and edx, 0xffffffa7
not edi
and edi, 0x58
or edx, edi
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x10038109
mov edx, dword [esp]
mov ebx, edx
and dl, 0xa3
not bl
and bl, 0x5c
or dl, bl
mov byte [ecx + 2], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x2e
cmp edx, 0x424a2f1e
je 0x1003817c
cmp edx, 0x528c9fab
jne 0x10038152
mov edx, dword [esp + 4]
mov edi, edx
and edx, 0xffffffa7
not edi
and edi, 0x58
or edx, edi
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x10038152
mov edx, dword [esp]
mov ebx, edx
and dl, 0x5e
not bl
and bl, 0xa1
or dl, bl
xor dl, 0xfc
mov byte [ecx + 3], dl
mov edx, 0x528c9fab
mov dword [esp + 4], 0x64
cmp edx, 0x424a2f1e
je 0x100381d4
cmp edx, 0x528c9fab
jne 0x1003819e
mov edx, dword [esp + 4]
mov edi, edx
and edx, 0x29149092
not edi
and edi, 0xd6eb6f6d
or edx, edi
xor edx, 0xd6eb6f35
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x1003819e
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], 0x6c
cmp edx, 0x424a2f1e
je 0x10038229
cmp edx, 0x528c9fab
jne 0x100381f3
mov edx, dword [esp + 4]
mov edi, edx
and edx, 0x837b513
not edi
and edi, 0xf7c84aec
or edx, edi
xor edx, 0xf7c84ab4
mov dword [esp], edx
mov edx, 0x424a2f1e
jmp 0x100381f3
mov edx, dword [esp]
mov ebx, edx
and dl, 0x5a
not bl
and bl, 0xa5
or dl, bl
mov ebx, ebp
mov ebp, esi
mov esi, dword [esp + 0x20]
xor dl, 0xfa
mov byte [ecx + 5], dl
add ecx, 6
mov dword [esp + 4], 0x6c
mov dword [esp + 8], ecx
mov ecx, 0x528c9fab
cmp ecx, 0x424a2f1e
je 0x10038290
cmp ecx, 0x528c9fab
jne 0x1003825a
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xfcc5a7ee
not edx
and edx, 0x33a5811
or ecx, edx
xor ecx, 0x33a5849
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1003825a
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x9f
not dl
and dl, 0x60
or cl, dl
mov byte [esp + 0x18], cl
mov ecx, 0x5fd5b288
jmp 0x10038039
mov ecx, dword [esp]
mov edx, ecx
and cl, 0xa4
not dl
and dl, 0x5b
or cl, dl
mov byte [eax + 3], cl
add eax, 4
mov ecx, 0xf655941b
mov dword [esp + 0x14], 0x1009f77d
mov dword [esp + 0x18], eax
cmp ecx, 0xf8f3e1f1
jg 0x10038325
cmp ecx, 0xb9a238f9
je 0x1003833a
cmp ecx, 0xf655941b
jne 0x100382d3
mov ecx, dword [esp + 0x14]
movsx ecx, byte [ecx]
mov dword [esp + 4], ecx
mov ecx, 0x528c9fab
cmp ecx, 0x424a2f1e
je 0x10038372
cmp ecx, 0x528c9fab
jne 0x100382fb
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 0x100382fb
cmp ecx, 0xf8f3e1f2
je 0x100383a5
cmp ecx, 0x49ef6af1
jne 0x100382d3
jmp 0x1003873c
mov eax, dword [esp + 8]
movsx eax, byte [eax]
mov dword [esp + 4], eax
mov eax, 0x528c9fab
cmp eax, 0x424a2f1e
je 0x100383bf
cmp eax, 0x528c9fab
jne 0x1003834a
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 0x1003834a
mov ecx, dword [esp]
mov edi, dword [esp + 0x18]
mov edx, ecx
and cl, 0x74
not dl
and dl, 0x8b
or cl, dl
xor cl, 0xd7
mov byte [edi], cl
mov ecx, dword [esp + 0x18]
mov dword [esp + 8], 0x1009f77e
inc ecx
mov dword [esp + 0xc], ecx
mov ecx, 0xb9a238f9
jmp 0x100382d3
mov byte [eax], 0
inc eax
mov ecx, 0xf8f3e1f2
mov edx, 0x49ef6af1
cmp eax, dword [esp + 0x10]
cmove ecx, edx
jmp 0x100382d3
mov eax, dword [esp]
mov ecx, eax
and al, 0xa2
not cl
and cl, 0x5d
or al, cl
mov ecx, dword [esp + 0xc]
mov byte [ecx], al
mov ecx, 0x528c9fab
mov eax, dword [esp + 0xc]
mov dword [esp + 4], 0x56
cmp ecx, 0x424a2f1e
je 0x1003840e
cmp ecx, 0x528c9fab
jne 0x100383e4
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 0x100383e4
mov ecx, dword [esp]
mov edx, ecx
and cl, 0xa1
not dl
and dl, 0x5e
or cl, dl
mov byte [eax + 1], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x65
cmp ecx, 0x424a2f1e
je 0x10038463
cmp ecx, 0x528c9fab
jne 0x1003842d
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xacb5ca44
not edx
and edx, 0x534a35bb
or ecx, edx
xor ecx, 0x534a35e3
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x1003842d
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x59
not dl
and dl, 0xa6
or cl, dl
xor cl, 0xf9
mov byte [eax + 2], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x72
cmp ecx, 0x424a2f1e
je 0x100384af
cmp ecx, 0x528c9fab
jne 0x10038485
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 0x10038485
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x9f
not dl
and dl, 0x60
or cl, dl
mov byte [eax + 3], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x73
cmp ecx, 0x424a2f1e
je 0x10038504
cmp ecx, 0x528c9fab
jne 0x100384ce
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x50e5b265
not edx
and edx, 0xaf1a4d9a
or ecx, edx
xor ecx, 0xaf1a4dc2
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x100384ce
mov ecx, dword [esp]
xor cl, 0x61
mov byte [eax + 4], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x69
cmp ecx, 0x424a2f1e
je 0x10038544
cmp ecx, 0x528c9fab
jne 0x1003851a
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 0x1003851a
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x9d
not dl
and dl, 0x62
or cl, dl
mov byte [eax + 5], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x6f
cmp ecx, 0x424a2f1e
je 0x10038599
cmp ecx, 0x528c9fab
jne 0x10038563
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0xdcd31119
not edx
and edx, 0x232ceee6
or ecx, edx
xor ecx, 0x232ceebe
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x10038563
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x9c
not dl
and dl, 0x63
or cl, dl
mov byte [eax + 6], cl
mov ecx, 0x528c9fab
mov dword [esp + 4], 0x6e
cmp ecx, 0x424a2f1e
je 0x100385ee
cmp ecx, 0x528c9fab
jne 0x100385b8
mov ecx, dword [esp + 4]
mov edx, ecx
and ecx, 0x318ab37
not edx
and edx, 0xfce754c8
or ecx, edx
xor ecx, 0xfce75490
mov dword [esp], ecx
mov ecx, 0x424a2f1e
jmp 0x100385b8
mov ecx, dword [esp]
mov edx, ecx
and cl, 0x8f
not dl
and dl, 0x70
or cl, dl
xor cl, 0x14
mov byte [eax + 7], cl
add eax, 8
mov ecx, dword [esp + 0x1c]
add ecx, 0xe
mov dword [esp + 0x10], ecx
mov ecx, 0xf8f3e1f2
jmp 0x100382d3
xor eax, eax
mov ecx, 0xd0d472b6
cmp ecx, 0xdbd8584b
jle 0x10038651
cmp ecx, 0x6437b828
jg 0x10038689
cmp ecx, 0xdbd8584c
je 0x10038746
cmp ecx, 0xde2750ad
jne 0x10038622
mov dword [esp + 8], ebx
mov ecx, 0x6437b829
jmp 0x10038622
cmp ecx, 0x8b02bc33
je 0x10038729
cmp ecx, 0x94dfc8c8
je 0x10038705
cmp ecx, 0xd0d472b6
jne 0x10038622
mov dword [esp], eax
mov edx, 0x77705491
mov ecx, dword [esp]
cmp ecx, 9
mov ecx, 0xde2750ad
cmovb ecx, edx
jmp 0x10038622
cmp ecx, 0x6437b829
je 0x10038717
cmp ecx, 0x77705491
jne 0x10038622
mov ecx, dword [esp]
mov esi, 0x3399856d
add ecx, ebx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov cl, byte [ecx]
mov edx, ecx
and cl, 0xa7
not dl
and dl, 0x58
or cl, dl
mov edx, dword [esp]
mov dword [esp + 0x38], eax
movsx ecx, cl
mov eax, ecx
not eax
add edx, 0x58
mov edi, edx
not edi
and edi, esi
mov esi, 0xcc667a92
and edx, esi
mov esi, 0x3399856d
or edx, edi
mov edi, 0xcc667a92
and eax, esi
mov esi, dword [esp + 0x20]
and ecx, edi
or ecx, eax
mov eax, dword [esp + 0x38]
xor ecx, edx
mov dword [esp + 4], ecx
mov ecx, 0x94dfc8c8
jmp 0x10038622
mov ecx, dword [esp + 4]
mov byte [esp + 0xc], cl
mov ecx, 0x8b02bc33
jmp 0x10038622
mov ecx, dword [esp + 8]
mov byte [ecx + 9], 0
mov ecx, 0xdbd8584c
jmp 0x10038622
mov eax, dword [esp + 0x10]
mov cl, byte [esp + 0xc]
mov byte [eax], cl
mov eax, dword [esp]
inc eax
jmp 0x1003861d
mov eax, 0xa57b8935
jmp 0x10037b87
mov eax, dword [esp + 0x3c]
push dword [esp + 8]
call eax
mov dword [esp + 0x2c], eax
mov eax, 0xeb9008b2
jmp 0x10037b87
mov eax, esi
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret