Function at 0x403860
Capabilities:
Authenticate hmac
Encode data using base64
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x4390f0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ecx + 0x3c]
mov dword [ebp - 0x34], edx
push ebx
mov dword [ebp - 0x2c], ecx
mov edx, dword [eax + ecx + 0x78]
mov eax, dword [edx + ecx + 0x20]
add edx, ecx
add eax, ecx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x24], eax
xor ecx, ecx
push esi
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], ecx
push edi
test eax, eax
je 0x404c50
nop dword [eax + eax]
shr di, 0xfd
mul ecx
movzx ebx, bx
add di, bx
rcr edx, 0x4b
rcr eax, 0x35
ror edx, 0x1b
rcr dx, 0x5e
dec ebx
add cx, si
movzx edi, bh
sub edi, eax
shr bx, 0x7b
mov di, 0x183
shr eax, 0x5c
inc cx
xor esi, 0x171
rcl cx, 0xfc
xor esi, edi
imul si
ror di, 0x69
rol esi, 0xdf
shr edi, 0xd
mov bx, 0x3bc
rcr edx, 0x52
mul bx
rcr cx, 0xf8
rcl si, 0x28
rol edi, 0x63
inc ecx
dec eax
add dx, 0xed
mul ecx
shr ebx, 0x8e
mul si
mov bx, 0x27d
dec edx
rol bx, 0xf7
inc bx
rcl ecx, 0x3d
mul di
imul edx
rol ebx, 0x16
xor si, 0xef
shl di, 0x29
imul edx
inc edx
xor eax, 0x2f1
imul dx
or ecx, 0x351
rcr ax, 0x13
sub si, dx
rol ecx, 0x6a
shl edx, 0xf6
inc di
ror edi, 0xab
and di, ax
and edx, 0x1f9
add cx, ax
imul edi
mov edi, eax
rcl dx, 0xac
ror edx, 0xa1
shl eax, 0xb9
dec cx
shr di, 0xc0
and si, ax
rol esi, 0x71
rol eax, 0x1e
rcr di, 0x1e
mov dx, si
imul ax
xor di, 0x2d6
or ax, 0x362
dec edx
rcr ecx, 0xfd
imul ebx
xor dx, cx
sub esi, 0x3ad
xor ecx, 0x1ac
mul si
and edi, 0x27a
rcl bx, 0x79
ror ebx, 0xfc
movsx ebx, bx
dec ecx
inc ebx
rcr si, 7
imul ax
imul edx
rcr ax, 0xea
je 0x4039de
mov ecx, 0xf4
imul ecx
dec cx
jmp 0x403a57
imul ebx
shl esi, 0xc9
mul eax
inc esi
shr ebx, 0xd2
mul ecx
or ax, 0x17a
inc si
dec si
and eax, edx
mul bx
or eax, edx
movzx ebx, bh
imul ecx
mul si
rol cx, 9
mul cx
mul si
shr ecx, 0x95
mul eax
inc dx
mul cx
imul di
rcr esi, 0x60
ror esi, 0xaa
shr eax, 0xc6
rcl edi, 0xe1
dec eax
and esi, edx
rcl ebx, 0xd3
inc ebx
imul dx
dec edi
add cx, 0x121
dec edx
inc cx
sub di, 0x95
mul di
add edx, 0x100
rcr cx, 0xfd
sub eax, 0x2b9
inc eax
inc ebx
and esi, 0x11c
and ax, 0x242
mul cx
inc ax
inc cx
rcr eax, 0x1d
shr ebx, 2
ror ecx, 0x3a
mul di
xor dx, dx
or bx, ax
xor ebx, esi
mul ebx
je 0x403a8e
dec bx
or edi, 0x30a
imul esi
add cx, di
inc cx
or cx, ax
jmp 0x403abb
mul ebx
rcr eax, 0x53
mov cx, dx
imul ecx
sub eax, ecx
rol edx, 0x57
imul ecx
movsx esi, cl
dec dx
sub di, 0x187
dec ebx
or ecx, 0x2db
ror edi, 0x7e
imul edi
inc ecx
inc eax
rcl bx, 0x55
and ebx, edi
dec ebx
mov eax, eax
dec cx
mul si
add ebx, 0x197
mul dx
ror edx, 0x5c
inc ecx
dec edx
add dx, 0x147
dec bx
inc ecx
mov edx, 0xc3
rcl edx, 0xc6
rcr ebx, 0x63
imul si
imul edi
shr dx, 0x13
shl ebx, 0xfb
xor edx, 0x1ee
rcr edi, 0xa8
add edx, 0x2df
mov edx, 0x15b
dec cx
rcl edi, 0xfd
shl bx, 0x84
shl ax, 0x9d
inc eax
xor bx, cx
mov di, 0x194
mul edx
mul dx
mov eax, eax
or esi, 0x34c
shr dx, 0x59
ror ecx, 0xd0
shl edi, 0xfb
mul eax
imul dx
rol si, 0xf7
rcl ecx, 0x24
add edi, ecx
movsx esi, si
je 0x403b4f
and ax, bx
movsx esi, bh
and ebx, edx
jmp 0x403b64
shl ebx, 0x57
rcr eax, 0x8d
add eax, 0x35d
mov bx, ax
rcl edi, 0x3f
rol si, 0xf0
imul edi
rcl esi, 0x9e
rol edi, 0xbe
mul ax
rol dx, 0xcd
movzx esi, cl
xor si, 0xda
mul dx
shl ax, 0xc8
or ecx, ecx
movzx edi, cl
mul di
xor esi, 0xdb
or edx, 0x226
dec ebx
inc edx
mov esi, 0x208
movzx edx, cx
inc eax
mul bx
shl edx, 0x21
sub ax, si
add ebx, eax
inc edi
rcr bx, 0x33
add bx, 0x3c0
imul cx
shl ebx, 0xe5
inc bx
inc bx
mul bx
shl si, 0x25
inc edi
rol edi, 0xd4
mul ecx
mul ax
add si, 0x102
imul edi
dec eax
inc ebx
xor bx, 0x32e
dec dx
movzx eax, cx
mul eax
rcr edi, 0x47
mov di, si
xor cx, 0x276
imul cx
inc edi
je 0x403c03
shr edx, 0x2b
mul edi
mul edi
imul ecx
xor eax, ebx
jmp 0x403c4c
rol di, 0x28
movzx eax, al
and ebx, esi
sub ecx, ecx
mov eax, eax
shr di, 0xd
mul ebx
imul bx
imul ebx
shr esi, 0x2f
or esi, 0xd2
rol ecx, 0x23
imul dx
rcl di, 0x32
add edi, eax
shr edx, 0x40
mov edi, eax
and cx, 0x3d9
rcl ecx, 0x80
and si, bx
inc di
dec ebx
mul cx
imul di
imul si
rol dx, 0x40
add eax, 0x102
inc eax
add bx, bx
shl si, 0x43
shl cx, 0x23
sub edi, 0x192
mov edx, ecx
inc edx
and ax, ax
inc edi
shl ax, 0x1f
and dx, dx
shr esi, 0xa0
imul eax
rcr esi, 0x1e
or di, 0x397
rcr bx, 0xc0
shr eax, 0xf7
dec si
mul esi
shr si, 0x35
inc ebx
shr edx, 0x9b
mul ax
je 0x403ca1
imul di
dec si
jmp 0x403ce7
or edi, 0x296
rcl eax, 0xdd
sub di, 0x142
sub cx, 0xcd
imul esi
inc bx
rol ebx, 0xe6
sub si, ax
dec esi
ror di, 0x41
imul edx
rol esi, 0x11
add edi, 0x250
rcr edx, 0x80
rol eax, 0x33
inc cx
xor ebx, 0x34
and di, cx
mul ebx
rol ebx, 0x42
shr cx, 0x5f
imul esi
and bx, 0x71
and si, 0x1cf
shl si, 0xc0
ror cx, 0x33
mul ax
inc si
sub bx, di
rcr cx, 0x4e
shl ax, 0x7a
mul ebx
sub edi, edx
dec edi
sub di, 0x1f
shl edx, 0xbd
rcr si, 0x43
rol si, 0x85
rol ax, 0x2b
add cx, 0x32b
xor esi, ebx
ror di, 0xbc
inc edx
imul si
mov bx, 0x2ee
and di, 0x2a7
inc bx
imul esi
add edx, 0x202
imul edx
shl edx, 0x98
mul cx
and ax, 0x128
shl si, 0xb1
rcl edi, 0xd3
inc cx
xor edi, 0xe2
or ecx, ebx
dec edx
je 0x403d80
cmp ebx, 0x64
je 0x403edf
inc eax
mov ebx, edx
imul eax
rcl bx, 0xf2
and edx, 0x7c
rol ebx, 0x81
inc edx
jmp 0x403e13
movsx esi, bl
xor cx, 0xc6
rol edx, 0x8a
rcl si, 0xfa
xor ecx, edi
mul eax
mul edi
rcr dx, 0x42
inc si
imul bx
dec esi
mov edx, edi
or eax, 0x1dc
rcl di, 0xcb
rol ecx, 0x68
rcl di, 0x71
imul edx
mul edx
and di, 0x89
shl dx, 0x36
rcl dx, 0xcd
rol ebx, 8
rol dx, 0x50
and ax, 0x399
inc esi
mov ecx, 0x202
shr edx, 0x47
dec ax
rcl edi, 0x27
xor dx, 0x290
shr ecx, 0xd1
mov di, 0x1d7
ror cx, 0x7f
inc bx
mul esi
movzx esi, bh
shl edx, 0x63
shr di, 0xdf
add edi, ecx
add dx, si
rcr edi, 0x98
xor bx, bx
sub si, cx
inc ax
rol ax, 0xe4
sub esi, 0x330
rcr edx, 0xf5
dec di
or edi, 0x240
add bx, ax
shl ax, 0x49
xor cx, bx
shr eax, 3
movzx edx, bx
mov ecx, 0x2a7
rol esi, 0xc9
sub edx, 0x3ac
inc ecx
rol cx, 0xf6
ror si, 0x31
rol cx, 0x76
dec dx
or ebx, eax
rol dx, 0xc6
rcr edx, 0x6f
xor bx, 0x399
dec di
inc cx
dec dx
imul di
sub ecx, 0x26f
dec ax
add si, 0x14e
rcl edi, 0x9d
shl si, 0x2e
or edx, 0x3c4
or dx, 0xfd
rol esi, 0xe1
inc eax
dec bx
shl si, 0x56
shr di, 9
imul ax
dec ecx
xor esi, 0x194
inc di
movsx edi, al
dec ebx
shr ecx, 0x17
imul si
dec bx
inc ebx
add ecx, edx
movsx ecx, dx
rcl edx, 0xbc
add bx, 0x13d
je 0x403edf
test edx, 0x24
je 0x403fc7
shl edi, 0x93
rcr ebx, 0x1f
or ecx, edi
movzx ecx, si
or ebx, edx
inc si
shl ax, 0xef
inc di
and esi, edi
mul di
jmp 0x403f40
and dx, 0xfb
movsx esi, si
shr ebx, 0x20
movzx edi, dx
dec cx
mov di, ax
shl cx, 0x4b
rcr eax, 0xeb
dec edi
inc ecx
xor esi, 0x194
inc esi
rcr ecx, 0x7d
movsx eax, cx
rcl cx, 0xd0
and cx, di
add bx, si
mov ebx, ebx
movzx edi, ax
ror edx, 0x9b
or ecx, ecx
and eax, 0x181
inc bx
ror esi, 0xfd
sub edx, 0x3b4
rcr edi, 0x19
rol ecx, 0x90
mul esi
dec ax
rcl si, 0xc5
dec ax
rcr ax, 0xbd
and edx, esi
mov esi, 0x23a
mul ecx
add esi, 0x3d
rol edx, 0x69
inc eax
imul eax
rcl esi, 0x42
mul eax
mul dx
add eax, 0x1fb
xor edx, eax
and eax, edx
rol esi, 0xdd
shr eax, 0x7c
imul ax
dec si
or di, si
dec esi
movzx ecx, ax
rcr di, 0x17
mul bx
inc ecx
rcr bx, 0x10
xor bx, 0x33
sub si, dx
mul edx
ror eax, 0x1b
movsx ebx, bh
shl edx, 0x32
rcr si, 0x77
mul cx
or bx, di
rcl di, 0xb9
inc di
inc dx
xor edi, edx
rol cx, 0xc5
add dx, di
and eax, edi
mul cx
je 0x403fc7
test ebx, 0x4d
je 0x40406e
rcl ax, 0x6d
jmp 0x404002
rol ax, 0xbf
dec edx
and bx, dx
rol edi, 0x3f
and ebx, 5
add bx, 0x10f
rcl esi, 0xe7
rcl ecx, 0xdf
mul cx
mul cx
mov dx, 0x3a2
mul eax
inc esi
or ax, 0x242
imul ebx
imul edi
ror eax, 0xc7
movsx eax, dl
mov edx, 0x6c
xor edx, ecx
inc edx
mov dx, 7
shl edi, 4
rcl di, 0x74
shl bx, 0x4b
shl cx, 0x76
mul si
shl ecx, 0x16
inc dx
shl esi, 0xfe
dec eax
imul cx
shl esi, 0xa0
rol esi, 0xac
rol ebx, 0xb1
dec ecx
shl ax, 0x3b
movzx eax, cl
mov ebx, edx
ror dx, 5
xor eax, edi
sub esi, 0x392
imul esi
rcr ebx, 0x93
add cx, 0x26b
dec eax
rol dx, 0xeb
ror edi, 0x8a
dec si
shr eax, 0xcb
rcr ax, 0xf
je 0x40406e
dec bx
imul bx
or ebx, 0x28
and cx, dx
jmp 0x4040dd
shr dx, 0x41
movzx ecx, bx
or ebx, 0x4d
imul esi
movsx ebx, dh
shr ax, 0x5e
dec si
sub si, 0x270
dec cx
mul di
rol dx, 0xd
rcr eax, 0xb4
imul di
mov bx, 0x2dd
movzx edi, di
imul eax
rcr si, 0x49
shl cx, 0x2c
shr ax, 0x67
inc edi
mov ebx, 0x1f8
or ecx, ecx
ror ax, 0x12
add di, di
shr dx, 0xe6
ror di, 0x7c
dec cx
and esi, edx
ror edi, 0x1d
xor dx, cx
mov si, di
shr esi, 0xac
add esi, 0x2b
dec edi
rcl esi, 0x50
or edi, 0x6f
mul cx
shr bx, 0x98
imul edi
rcl dx, 0x96
ror esi, 0x13
or di, 0x165
ror ebx, 0x62
ror bx, 0x76
dec eax
add ecx, ebx
or bx, 0x19e
xor di, cx
movzx esi, al
ror bx, 0xfd
xor ax, 0x1bb
mul esi
dec ax
rcl bx, 0x49
xor ax, 0x17
rcl ecx, 0x9b
and ax, 0x1ff
mul esi
mul edx
ror edx, 0x6c
sub eax, 0x357
shr ebx, 0x8d
shl dx, 0xf9
ror ebx, 0x21
shl eax, 0x35
shl ecx, 0x41
dec edi
movzx esi, ax
rol di, 0x66
mul ebx
mul cx
shl edi, 0xb0
je 0x404179
test edi, 0x4d
je 0x404212
ror ecx, 0x96
rol dx, 0x7b
mul edx
mul dx
or ebx, 0x1e7
shr eax, 0x2f
or ebx, 0x380
jmp 0x4041a4
shr dx, 0x16
mov di, 0x36c
shr cx, 0x6d
mul edi
dec dx
inc ax
and ecx, 0x331
shr eax, 0x8b
rcl esi, 0xa2
or ax, si
mul esi
rol dx, 2
xor ax, 0x6a
sub ecx, ecx
rol di, 0xd2
inc ax
or ebx, 0x14e
imul eax
and ax, 0x17e
dec bx
shr di, 0xc1
dec bx
inc ecx
shr di, 0x55
add di, bx
and di, si
mul ax
movzx edi, bh
shl di, 0x58
shr edx, 0xdd
dec ecx
or edx, 0x180
or edx, 0x3c2
sub ecx, 0x95
add eax, 0x17f
shr cx, 0xe
rcr cx, 0xab
je 0x404212
cmp edx, 0x41
je 0x404304
imul edx
mov dx, 0x20d
and dx, cx
rol ax, 0xfb
jmp 0x40424d
sub esi, 0x3c1
rcr edx, 0xd
ror edi, 0x9d
movzx edi, bl
inc bx
inc ebx
inc edi
mul si
and cx, 0x274
add edi, eax
shl si, 0x45
rcl edi, 0x87
dec eax
rcr si, 0x2d
rcl ebx, 0x5e
dec si
add ebx, 0x108
imul bx
shl cx, 0x56
imul cx
rol ecx, 0xe2
sub edi, ecx
ror si, 0x30
shl esi, 0x23
add bx, 0x170
add di, si
and si, si
mov si, 0x327
and edi, 0x343
ror cx, 0x25
imul ecx
imul di
rol si, 0xc8
rcr edx, 0xdd
ror di, 0x86
sub eax, 0x2fd
inc ax
dec edx
inc di
shl dx, 0x8a
sub bx, 0x240
dec bx
rcr ecx, 0x4f
movsx ebx, dh
or si, cx
rol bx, 0x7f
shr bx, 0x4e
movsx ebx, al
and dx, ax
ror ax, 0xed
dec bx
inc ebx
add cx, 0x2a5
xor edi, 0x33e
rcr edi, 0x68
xor cx, ax
rol ecx, 0x67
mul dx
xor esi, 0x28e
imul si
sub di, 0x1a4
inc si
or dx, di
rcl dx, 0xd5
dec di
rcr si, 0x8c
je 0x404304
cmp ebx, 0x31
je 0x40435a
shl cx, 0xc5
xor eax, eax
shr cx, 0x98
xor ax, si
and esi, edx
jmp 0x404328
and ax, ax
rcl bx, 0x13
xor eax, 0xa2
shl cx, 0x2d
inc eax
or edx, edi
dec cx
movzx eax, bl
imul ebx
xor eax, edx
rcr ax, 0x12
or eax, edi
imul ebx
rcr di, 0x76
mul ebx
dec ax
shl edi, 0x8d
shr di, 0xc6
inc ax
add esi, 0x20e
and esi, 0x1ae
je 0x40435a
test ecx, 0x49
je 0x404435
dec edi
sub ax, bx
dec eax
jmp 0x4043b9
mul dx
rcl ecx, 8
rcr eax, 0xc3
shl edx, 0x87
ror ecx, 0xd5
mov si, 0x1fa
rcl ax, 0xe8
rcl si, 0xdc
inc edx
imul edx
shr dx, 0x9d
shr cx, 0xfc
sub ax, 0x226
mul ecx
imul ebx
imul eax
rol dx, 0x1a
or edx, 0x3a4
dec dx
sub cx, di
shr edx, 0xf7
xor di, ax
mul ebx
mul esi
or di, 0x8d
ror di, 0xea
dec esi
and cx, ax
xor cx, cx
shr edx, 0xba
shr eax, 0x83
imul bx
and esi, 0x2b4
rol dx, 0x92
imul bx
xor ax, bx
ror di, 0x31
rcl ax, 0x1a
shl edi, 0x3f
shl bx, 0x2b
inc edi
rol esi, 0x4c
shr cx, 0xcd
ror edx, 0x3e
rol edi, 0x86
shl esi, 0xcc
rol ecx, 0x8a
ror edx, 0x54
add cx, bx
inc edi
mul ecx
dec ecx
and ax, dx
ror ax, 0xa2
dec cx
mul edx
rcr dx, 0x2b
shr dx, 0x4d
imul esi
mul eax
mul ebx
rol bx, 0x9e
and bx, ax
inc cx
and di, 0x148
rcl bx, 0xb6
rcl eax, 0xfe
je 0x404435
mul eax
mul dx
shl esi, 0x47
mul esi
jmp 0x4044b4
shl dx, 0x8b
sub edi, 0x230
mul eax
mov ax, 0x234
or ax, si
rol dx, 0x6a
or si, 0x1c5
ror ax, 0x8f
and di, 0x2fe
shr eax, 0x49
inc di
sub esi, edi
imul edx
movzx esi, dh
shr ebx, 0x3e
mul esi
and edx, 0x238
rcl bx, 0xf9
xor cx, 0x14b
imul ax
sub bx, ax
dec bx
rcr si, 0xf7
mov edi, edx
shr dx, 0xc2
shr edx, 0xf1
xor ax, 0x25d
rol edi, 0x50
xor eax, 0x29d
shr cx, 0xda
dec eax
and ecx, 0x83
shr edx, 0x66
rcl ecx, 0xdf
and si, 0x18
shr si, 0xf5
imul edi
rcr dx, 9
and eax, edx
movsx esi, cx
shl edx, 0xf8
rcr ax, 0x2a
rcr si, 0xb7
mul ax
mul dx
dec si
mov di, 0x10
movzx eax, di
shr dx, 0xd5
shl ax, 0xbc
or cx, 0xd5
movzx ecx, bh
mul edx
add di, dx
dec edx
movzx ecx, dh
mov bx, si
mul cx
add cx, 0x3bb
dec cx
and si, 0x1b2
ror bx, 0xbe
and eax, 4
mul ax
sub edi, 0x265
mul cx
or di, si
add ecx, edx
ror dx, 0x88
movzx eax, cx
rol si, 0x41
rol bx, 0x40
inc edi
dec ax
rcl dx, 0xfa
inc edi
mov edx, 0x2c3
imul ax
inc eax
dec ecx
imul ecx
shr cx, 0x9e
xor edi, edx
sub ebx, 0x1d0
mov di, dx
ror bx, 0xbd
je 0x404574
rol bx, 0xd3
mov bx, 0xa1
rol edi, 0xec
sub dx, 0x1f1
movsx edi, dh
movzx eax, dl
shr eax, 0x10
dec eax
dec ebx
jmp 0x404616
inc cx
dec ecx
mov ax, si
imul di
movzx eax, dh
rcr di, 0x62
inc ebx
shr dx, 0xb7
rol ebx, 0xd5
ror si, 0xdb
shl ax, 0x1f
imul edx
ror bx, 0x55
imul esi
ror edi, 0x8a
inc si
rol edi, 0xfa
shl si, 0xbf
rol ax, 0x10
inc eax
ror edi, 0x6c
rcl di, 0x87
mul ebx
add edx, 0x159
add edi, 0xf2
dec eax
sub edx, 0x2e5
and dx, di
inc bx
shr ecx, 0x56
rol bx, 0x2e
ror si, 0xd8
or ebx, ebx
rcl ax, 0xf9
add di, 0x80
imul dx
imul edi
shr ax, 0xd
mul eax
dec cx
inc di
xor dx, 0x250
shl dx, 0x82
mov cx, 0xd6
shl cx, 0xa2
shr ax, 0x40
mul cx
and eax, 0x25b
or ecx, 0x263
movsx ebx, bx
rcl ebx, 0x89
sub di, cx
imul edi
xor edx, ebx
add di, 0x195
or esi, ecx
ror ebx, 0xbe
imul eax
dec cx
and di, 0x33
shr ebx, 0xf2
ror esi, 0xe8
and si, cx
xor bx, 0x27c
inc di
sub dx, dx
inc dx
shr ebx, 0x78
or edi, esi
ror bx, 0x8c
mov eax, edx
mul bx
dec di
inc ecx
or bx, 0x212
mov ecx, ebx
dec dx
imul bx
inc ax
dec si
inc edi
shr di, 0x40
ror ax, 0x74
imul si
add eax, 0x92
dec esi
or esi, 0x94
rol si, 0xf5
rcl dx, 0xa8
dec si
mul cx
ror edi, 0x49
movsx edx, cl
je 0x4046ad
mov eax, 0x14f
and si, 0x30c
inc dx
xor cx, dx
ror ecx, 0xe8
dec edx
jmp 0x4046f1
and esi, eax
shr si, 0xed
imul edi
rol dx, 0x29
mul eax
rcr ebx, 0x48
shr esi, 0xa
rcr ecx, 0x68
sub ecx, eax
rol ebx, 0xd9
inc esi
dec di
rcl ecx, 0x7e
imul di
shl bx, 0xb4
xor si, 0x3e4
mov bx, 0xab
xor bx, dx
dec dx
dec cx
rcl ecx, 6
inc ecx
or edi, esi
rcl ecx, 0x10
inc si
shr esi, 0x89
xor eax, 0xf3
or esi, 0x355
shl dx, 0x5b
rcr edi, 0x61
rcr di, 0xb4
xor ecx, edx
ror si, 0x5b
xor bx, di
rol ebx, 0xb1
mov cx, cx
rcl esi, 0xfc
ror ebx, 0xc3
inc edx
inc esi
rcl eax, 0x11
movzx esi, dl
shr dx, 0x16
add di, cx
ror edi, 0xce
rcl si, 0xd8
dec bx
shl ax, 0x2e
shl esi, 0xbf
dec cx
shr bx, 0x80
dec eax
shr cx, 0x6f
imul cx
imul cx
inc esi
shl di, 0x5e
xor di, 0x1f3
ror di, 0x23
rol esi, 0xba
je 0x404788
test edx, 0x43
je 0x4047cd
dec eax
shr bx, 0x6d
or ecx, 0x3e2
mov di, dx
dec eax
mov bx, 0x206
rcr eax, 0x19
rcr esi, 0xff
movzx ecx, si
jmp 0x404790
add edx, 0x77
dec edx
ror si, 0x9f
movsx esi, bl
add si, 0x36c
shl di, 0xe3
ror bx, 4
rcr edx, 0x3e
inc ax
add ebx, ecx
and eax, ebx
imul edx
je 0x4047cd
test eax, 0x1e
je 0x404845
rol esi, 0x61
shl ebx, 0x89
dec ax
inc esi
rcr esi, 0x5e
xor dx, cx
ror dx, 0x9b
jmp 0x4047fe
dec si
imul esi
rcl eax, 0xf0
imul cx
and bx, ax
or edx, eax
imul edx
dec bx
inc dx
dec ax
xor eax, 0x3b8
sub si, 0x322
inc ebx
or ax, 0x241
inc eax
mul edx
imul ax
imul dx
inc di
sub cx, ax
mul edx
inc ax
add ax, cx
imul cx
ror dx, 0xf5
ror edi, 0x1a
rcr ebx, 0x87
mov ax, 0x1ae
or cx, 0x3bd
rol ecx, 0x45
ror cx, 0x17
dec ebx
imul ebx
sub di, 0xe3
rcr eax, 0x33
shr ax, 0x23
or ecx, 0x1f
je 0x404845
sub si, 0x258
imul edi
jmp 0x4048c8
shr si, 0xc1
sub dx, cx
sub di, 0x30
and bx, 0xa7
shl dx, 0x69
rol ax, 0xd2
ror eax, 0x60
mov cx, 0x3ac
or di, 0xee
dec dx
dec di
mul bx
mul si
rol di, 0x81
imul edi
dec di
ror eax, 0xe9
dec bx
imul eax
mov di, si
sub ebx, 0x2a4
imul ax
shr di, 0x80
rcr dx, 0xf5
rcr edx, 0x85
dec ecx
movsx ebx, ax
rcl di, 0x89
inc esi
mov ecx, 0x303
rol eax, 0x32
rcr ecx, 0x2c
ror edi, 0xa8
mul ebx
ror edi, 0xb4
mov ebx, ecx
and ax, 0x1e2
shr eax, 0x81
or edi, 0x1d2
ror di, 0xa4
mov cx, bx
shr ebx, 0x66
dec ecx
imul dx
shr ecx, 0xab
and di, 0x47
sub edx, 0x245
rcr cx, 0xd3
dec ebx
mul si
shl di, 0xe
shr di, 0x41
inc ecx
shl si, 0x7d
and esi, ecx
xor bx, 0x2dd
and cx, si
ror edi, 0xbe
ror eax, 0x53
ror dx, 0xf6
dec esi
rol bx, 0x84
dec di
shr bx, 0x10
rcl ebx, 0x2c
mul edx
xor ecx, 0x25
mul ax
inc dx
xor eax, 0x130
ror esi, 0x32
or di, 0x265
sub di, cx
rol ecx, 0x37
dec ecx
mov eax, ebx
inc edx
shl dx, 0xcc
or si, ax
movzx edx, dh
inc edx
rol si, 0x2c
inc cx
rcl ecx, 0x90
mul esi
mul cx
dec ax
je 0x40495b
inc di
jmp 0x4049e1
mul ax
inc cx
rcl edi, 0xe5
imul ax
mul edi
imul edx
inc si
dec di
sub esi, 0x76
dec ecx
add eax, edx
imul di
mul bx
and cx, 0x372
sub si, cx
or dx, 0x315
sub bx, 0x1b1
mov si, dx
inc ecx
rcl ecx, 0x84
add dx, 0x107
mul edi
inc edx
imul si
shr dx, 0x18
sub esi, edx
shl ecx, 0xed
shr ax, 0xb5
ror di, 0xf6
inc ax
mov ax, bx
rcl edx, 0x43
and cx, 0x154
mul si
or edi, 0x66
mul ax
sub ebx, 0x23
mul di
or di, 0x35
rcl esi, 0x41
sub cx, 0x1c
mov esi, eax
imul ecx
inc eax
rol eax, 0x24
movzx esi, ax
imul cx
inc edx
mov dx, ax
shr si, 0xcb
add ax, si
xor ecx, 0x271
mov ebx, 0x221
or ebx, 0x107
shl dx, 0xe3
mul ecx
rol ecx, 0x2d
shl si, 0x43
shr edx, 0xb0
add eax, edx
shr bx, 0xe9
shr si, 0xa
rcr si, 0x74
add si, 0x33b
and eax, 0x11d
mov ebx, edi
shl ecx, 0xe6
sub ecx, edi
shl di, 0x73
add ecx, 0x26b
rcr ecx, 0xec
mov edi, eax
sub edi, 0x27e
or di, 0x1de
rol edx, 0xc3
xor edi, 0x3d7
and eax, 0x186
mul cx
shr edi, 0x82
or ebx, edx
or ebx, 0x14a
xor ecx, 0x21b
je 0x404a78
mul cx
dec di
sub ax, 0x31b
jmp 0x404a80
add cx, si
rcl ecx, 0x4f
dec ax
mul si
inc ax
ror di, 0x30
rol si, 0xcb
sub ecx, 0x16d
shl ax, 0xd6
ror edx, 0xc5
movsx ebx, dx
rol esi, 0xd6
add bx, bx
imul dx
add esi, ecx
xor cx, cx
dec ecx
sub di, bx
imul dx
mul si
sub edx, 0x2da
inc ebx
add ecx, eax
mov ecx, 0x20
ror si, 0x25
mov eax, dword [ebp - 0x24]
xorps xmm0, xmm0
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
mov edx, dword [eax]
add edx, dword [ebp - 0x2c]
mov eax, edx
lea esi, [eax + 1]
nop dword [eax]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404af0
sub eax, esi
lea ecx, [ebp - 0x1c]
push eax
push edx
call fcn.00405e30
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
mov edi, eax
xor edi, 0x235
mov ebx, eax
cmp dword [ebp - 8], 0x10
cmovae ecx, edx
shr ebx, 2
xor esi, esi
mov dword [ebp - 0x20], ecx
test ebx, ebx
je 0x404b6c
nop dword [eax]
push ecx
push ebx
push str._x_and__p
call fcn.00401220
mov eax, dword [ebp - 0x20]
add esp, 0xc
imul edi, edi, 0x5bd1e995
imul ecx, dword [eax + esi*4], 0x5bd1e995
inc esi
mov eax, ecx
shr eax, 0x18
xor eax, ecx
imul ecx, eax, 0x5bd1e995
xor edi, ecx
mov ecx, dword [ebp - 0x20]
cmp esi, ebx
jl 0x404b30
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
lea esi, [ecx + ebx*4]
and eax, 3
xor ecx, ecx
sub eax, 1
je 0x404b93
sub eax, 1
je 0x404b8a
sub eax, 1
jne 0x404ba0
movsx ecx, byte [esi + 2]
shl ecx, 0x10
movsx eax, byte [esi + 1]
shl eax, 8
xor ecx, eax
movsx eax, byte [esi]
xor eax, ecx
imul eax, eax, 0x5bd1e995
xor edi, eax
mov eax, edi
shr eax, 0xd
xor eax, edi
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
cmp eax, dword [ebp - 0x34]
je 0x404c02
add dword [ebp - 0x24], 4
mov eax, dword [ebp - 8]
cmp eax, 0x10
jb 0x404bf0
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x404be6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c67
push ecx
push edx
call fcn.0040b464
add esp, 8
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x38]
jb 0x4038b0
jmp 0x404c50
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [esi + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + ebx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebx]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
cmp eax, 0x10
jb 0x404c50
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x404c46
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x404c67
push ecx
push edx
call fcn.0040b464
add esp, 8
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x2c]
xor ecx, ebp
add eax, dword [ebp - 0x30]
pop edi
pop esi
pop ebx
call fcn.0040aff0
mov esp, ebp
pop ebp
ret
call fcn.00411e40
int3