Function at 0x215d2fc
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encode data using base64
Execute anti-debugging instructions
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov eax, 0xf
stc
shrd edx, ebx, 0x45
mov dword [esp + 0x6b8], eax
jmp 0x22a44d5
push edx
jmp 0x41e974
mov byte [esp + 0x1bf8], 0x1d
jmp 0x20d3c04
sub eax, 0
jmp 0x40559a
push esi
call fcn.0046e045
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x84]
jmp 0x23c7547
call fcn.004062d0
lea eax, [esp + 0x6a0]
not cl
movsx cx, cl
mov cx, 0x5321
push eax
not ecx
mov cl, 0x45
xchg cx, cx
lea ecx, [esp + 0xf4]
jmp 0x22d38f7
call fcn.00406880
lea ecx, [esp + 0x314]
mov dl, 0xac
movsx dx, dl
push ecx
lea edx, [esp + 0xa8c]
bswap ecx
mov ecx, eax
push edx
sete dh
jmp 0x221ada6
mov byte [esp + 0x1955], 0x45
xchg cl, dl
mov byte [esp + 0x1956], 0x52
bswap cx
not dl
mov cx, 0x6d0e
mov byte [esp + 0x1957], 0x5f
movsx ecx, di
mov byte [esp + 0x1958], 0x45
setl ch
mov byte [esp + 0x1959], 0x58
dec cx
movzx ecx, dx
mov byte [esp + 0x195a], 0x49
movsx cx, al
not ecx
xchg ch, cl
mov byte [esp + 0x195b], 0x54
mov byte [esp + 0x195c], 0x5f
dec cl
setne dl
mov dl, al
mov byte [esp + 0x195d], 0x42
mov dl, bl
mov ch, 0x37
mov byte [esp + 0x195e], 0x54
mov dl, 0xd9
mov byte [esp + 0x195f], 0x4e
xchg dl, cl
mov dl, 0x17
mov byte [esp + 0x1960], 0x3e
movsx ecx, di
mov byte [esp + 0x1961], 0
bswap cx
mov dword [esp + 0x32c], esi
mov dword [esp + 0x328], edi
mov byte [esp + 0x318], 0
lea ecx, [eax + 1]
lea ecx, [ecx]
xchg dl, dl
mov dl, byte [eax]
inc eax
cmp dx, 0x3b52
test dl, dl
jne 0x209103a
sub eax, ecx
seta dl
push eax
lea edx, [esp + 0x1954]
movzx cx, bl
movzx ecx, cx
push edx
lea ecx, [esp + 0x31c]
jmp 0x22f9442
jb 0x2265cf0
mov esi, dword [esi + 0x20]
jmp 0x210bad8
call fcn.004064a0
cmp dword [esp + 0xaa0], ebx
jb 0x2174a49
mov eax, dword [esp + 0xa8c]
jmp 0x2227487
mov byte [esp + 0x1bf8], 0x1f
jmp 0x20fec12
call fcn.0042cfd0
push 0xffffffffffffffff
mov cl, 0x3b
cmovle ecx, esp
bswap cx
push edi
cmovb cx, dx
mov ch, 0xa3
movzx ecx, ax
push eax
lea ecx, [esp + 0x165c]
jmp 0x22df184
je 0x2131c07
push 1
movzx cx, cl
movzx ecx, si
push 0x511994
mov cx, 0xf5
lea ecx, [esp + 0x23c]
jmp 0x228358c
inc eax
stc
cmp bl, 0x4b
test cl, cl
jmp 0x234f547
call fcn.0044a350
add esp, 8
cmp cx, 0x3631
clc
cmp edi, eax
mov byte [esp + 0x1bf0], 6
cmp dword [esp + 0x24c], ebx
jmp 0x2254a1b
jmp 0x206d927
call fcn.0046e045
mov ecx, dword [esp + 0x14]
sal esi, 0xbb
mov edx, dword [ecx + 0x84]
bt esi, esp
movsx ecx, dx
rol cx, cl
mov dword [edx + 0x6c], eax
mov ch, 0x66
bswap ecx
mov esi, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
cmc
add esp, 4
inc ebx
cmp ebx, edi
jl 0x22aefe1
lea esi, [esp + 0x120]
call fcn.00440f20
sub edi, edi
dec cx
not cx
lea ebx, [edi + 0x10]
mov eax, 0x74212b67
lahf
lea esi, [edi + 0xf]
lea eax, [esp + 0x18e4]
mov byte [esp + 0x18c8], 0x3c
setne dl
bswap cx
mov byte [esp + 0x18c9], 0x55
bswap cx
mov byte [esp + 0x18ca], 0x50
mov byte [esp + 0x18cb], 0x44
xchg ecx, ecx
bswap cx
mov byte [esp + 0x18cc], 0x41
mov byte [esp + 0x18cd], 0x54
setp ch
mov byte [esp + 0x18ce], 0x45
mov byte [esp + 0x18cf], 0x5f
mov byte [esp + 0x18d0], 0x57
jmp 0x226c17a
push edi
push eax
mov cl, 0x31
not ch
lea ecx, [esp + 0x165c]
jmp 0x23689cc
mov byte [esp + 0x1971], 0x46
movzx ecx, cx
mov byte [esp + 0x1972], 0x46
movsx cx, bh
mov ch, dl
mov byte [esp + 0x1973], 0x53
mov byte [esp + 0x1974], 0x45
jmp 0x225316e
push 0x3975c6cc
call fcn.020526e6
inc eax
test esp, 0xd9730b7
cmp eax, ebx
mov dword [esp + 0x18], eax
jmp 0x2222c2b
push edx
jmp 0x2283d4a
lea ecx, [esp + 0x140]
jmp 0x2078aa6
call fcn.0045024c
lea esp, [esp + 4]
stc
cmp bp, 0x7d37
mov dword [esp + 0xaa0], esi
test eax, 0x19d2406a
mov dword [esp + 0xa9c], edi
mov byte [esp + 0xa8c], 0
cmp dword [esp + 0x150], ebx
jb 0x2174a82
mov ecx, dword [esp + 0x13c]
push ecx
call fcn.0045024c
lea esp, [esp + 4]
mov byte [esp + 0x1bf0], 6
stc
mov dword [esp + 0x150], esi
mov dword [esp + 0x14c], edi
mov byte [esp + 0x13c], 0
test dl, ch
cmp ecx, eax
cmp dword [esp + 0x32c], ebx
jmp 0x2183a0b
test cl, cl
jmp 0x232bc86
jb 0x2183a21
mov edx, dword [esp + 0x318]
push edx
call fcn.0045024c
add esp, 4
mov dword [esp + 0x32c], esi
mov dword [esp + 0x328], edi
test esi, 0x50aa4a5d
mov byte [esp + 0x318], 0
cmp dword [esp + 0x1664], edi
je 0x2317506
push 0x511994
movsx ecx, sp
movzx cx, ah
not cx
lea ecx, [esp + 0x6a4]
jmp 0x2078451
ja 0x21a03fb
call fcn.0046de02
mov esi, dword [esp + 0x12c]
test bl, 0x41
cmp dword [esi + 0x34], 0x10
jmp 0x20957e7
push ecx
mov ch, dh
setle ch
lea ecx, [esp + 0x3c4]
jmp 0x2303d69
mov dword [esp + 0x214], esi
stc
clc
cmp di, 0x48bf
mov dword [esp + 0x210], edi
stc
mov byte [esp + 0x200], 0
clc
cmp bp, 0x6d59
cmp esi, edx
cmp dword [esp + 0x3d4], ebx
jb 0x22ea5f4
mov ecx, dword [esp + 0x3c0]
push ecx
jmp 0x22ea5e2
mov byte [esp + 0x1bf8], 0x15
jmp 0x230c306
mov byte [esp + 0x240], 0
jmp 0x2366f4d
lea edx, [esp + 0x1674]
xchg cx, cx
lea ecx, [esp + 0x140]
jmp 0x22034de
call fcn.00406880
mov byte [esp + 0x1bf0], 0x20
cwd
not dh
cmovae edx, esp
lea eax, [esp + 0x18c8]
mov dword [esp + 0x364], esi
mov dx, bp
mov dword [esp + 0x360], edi
dec dx
mov cl, 0x79
mov byte [esp + 0x350], 0
mov cl, 0x35
lea edx, [eax + 1]
mov cl, byte [eax]
jmp 0x433c64
jl 0x205675d
lea esi, [esp + 0x638]
jmp 0x22518ee
push eax
jmp 0x2174a3a
jne 0x22531b7
sub eax, ecx
not cx
mov cl, 0xf
push eax
movsx cx, ah
not ecx
bswap cx
lea ecx, [esp + 0x1968]
jmp 0x21a5024
push ecx
cwd
lea edx, [esp + 0x1674]
lea ecx, [esp + 0x204]
jmp 0x2035675
call fcn.00440f20
xor edi, edi
lea ebx, [edi + 0x10]
lea esi, [edi + 0xf]
not ch
jmp 0x22a28a2
mov byte [esp + 0x1975], 0x54
mov byte [esp + 0x1976], 0x3e
mov byte [esp + 0x1977], 0
xchg cl, dl
mov dword [esp + 0x3d4], esi
setns dl
xchg cx, cx
mov dword [esp + 0x3d0], edi
mov byte [esp + 0x3c0], 0
movsx ecx, cx
xchg ch, cl
inc dl
lea ecx, [eax + 1]
lea ecx, [ecx]
inc dl
not dl
xchg dl, dl
mov dl, byte [eax]
inc eax
test bh, 0x25
cmp bp, ax
test dl, dl
jmp 0x222e8f9
jb 0x22b1ca5
mov ecx, dword [esp + 0x238]
jmp 0x234cfd5
mov eax, edx
test dl, dh
shr eax, 0x1f
stc
lea eax, [eax + edx]
cmp eax, 1
jmp 0x21a03e6
add esi, 0x20
jmp 0x206d927
call fcn.004064a0
cmp dword [esp + 0xad8], ebx
jb 0x2283d55
mov edx, dword [esp + 0xac4]
jmp 0x21710b4
mov byte [esp + 0x18d1], 0x49
bswap ecx
dec ch
mov byte [esp + 0x18d2], 0x4e
mov byte [esp + 0x18d3], 0x3e
movsx ecx, bp
mov byte [esp + 0x18d4], 0
not cx
inc ch
mov byte [esp + 0x18e4], 0x3c
mov byte [esp + 0x18e5], 0x42
inc dl
not ch
mov byte [esp + 0x18e6], 0x47
movsx cx, dh
mov ecx, 0x614211b0
mov byte [esp + 0x18e7], 0x3e
mov byte [esp + 0x18e8], 0
movzx ecx, di
mov dword [esp + 0x284], esi
setns cl
mov dword [esp + 0x280], edi
mov byte [esp + 0x270], 0
bswap ecx
lea ecx, [eax + 1]
dec dl
lea ecx, [ecx]
not dl
mov dl, byte [eax]
jmp 0x230a7c3
push edx
cmovp cx, ax
movsx ecx, dx
lea ecx, [esp + 0x204]
call fcn.00406880
lea eax, [esp + 0x3bc]
not cx
movzx cx, ch
push eax
cwd
lea ecx, [esp + 0xac4]
cmovb edx, edi
jmp 0x22477b6
jb 0x238c462
mov eax, dword [esp + 0x200]
push eax
jmp 0x238c45a
mov dword [esp + 0x254], esi
mov dword [esp + 0x250], edi
jmp 0x2217393
call fcn.0045024c
add esp, 4
test sp, ax
mov dword [esp + 0xad8], esi
cmc
mov dword [esp + 0xad4], edi
clc
test si, cx
mov byte [esp + 0xac4], 0
test edx, esi
clc
cmp dword [esp + 0x214], ebx
jmp 0x227a03c
call fcn.0044a350
add esp, 8
cmp dword [esp + 0x6b8], ebx
jb 0x41e982
mov edx, dword [esp + 0x6a4]
jmp 0x53846a
lea eax, [esp + 0x1950]
inc ecx
mov byte [esp + 0x1950], 0x3c
dec dl
mov byte [esp + 0x1951], 0x53
mov ecx, edx
mov byte [esp + 0x1952], 0x45
xchg dl, cl
mov byte [esp + 0x1953], 0x52
inc dl
bswap cx
mov byte [esp + 0x1954], 0x56
jmp 0x2090f7d
jle 0x2131be7
mov eax, ebx
clc
stc
sub eax, 0
jmp 0x22ebb41
call fcn.0045024c
add esp, 4
rol dl, 0xed
test esi, 0x22a55f0
mov ecx, dword [esp + 0x130]
neg di
shrd eax, ebx, 0x6e
mov esi, dword [esp + 0x12c]
stc
mov edi, ecx
shr ax, 0x78
movzx edx, bp
sub edi, esi
cmp esi, esp
rol dh, 0x6a
shr dl, 0xad
mov eax, 0x92492493
adc dx, 0x1d58
test ecx, ebp
imul edi
add edx, edi
sar edx, 4
mov edi, edx
stc
jmp 0x22c278a
shr edi, 0x1f
stc
jmp 0x237d7e9
push ecx
not ch
mov ch, bh
lea ecx, [esp + 0x1658]
mov byte [esp + 0x1bf8], 0x17
jmp 0x22a166c
mov byte [esp + 0x1bfc], 0x1e
jmp 0x2269cd8
call fcn.0045024c
add esp, 4
cmp ebp, 0x95d3ef3
test ax, bp
clc
mov dword [esp + 0x3d4], esi
cmp cx, 0x6a4d
clc
mov dword [esp + 0x3d0], edi
mov byte [esp + 0x3c0], 0
test si, 0x5a78
cmp dword [esp + 0x1664], edi
jmp 0x20d3d16
je 0x23916ea
sub eax, 1
jne 0x2131bde
sub ecx, esi
ror al, 0xe3
sbb eax, eax
mov eax, 0x92492493
imul ecx
lea edx, [edx + ecx]
sar edx, 4
jmp 0x225ea7e
call fcn.00406880
mov byte [esp + 0x1bf0], 0x14
mov dx, cx
movsx ax, bl
lea eax, [esp + 0x18d8]
mov edx, 0x44da345b
mov dword [esp + 0x150], esi
mov cl, dl
cwd
mov dword [esp + 0x14c], edi
mov byte [esp + 0x13c], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test al, 0x88
jmp 0x2179162
call fcn.00406880
mov byte [esp + 0x1bf0], 0x1c
cwd
lea eax, [esp + 0x18d8]
mov dword [esp + 0x214], esi
movzx dx, bl
inc cl
mov dword [esp + 0x210], edi
mov byte [esp + 0x200], 0
cmovl dx, cx
lea edx, [eax + 1]
mov cl, byte [eax]
jmp 0x20e43f0
inc eax
cmp edi, eax
test dl, dl
jmp 0x2391bbb
call fcn.0042cfd0
push 0xffffffffffffffff
mov ch, ah
jmp 0x2132b1f
lea eax, [esp + 0x1964]
not ch
setne dl
movsx ecx, sp
mov byte [esp + 0x1964], 0x3c
mov cl, 0xe9
mov byte [esp + 0x1965], 0x53
mov byte [esp + 0x1966], 0x45
dec dl
setbe dl
mov byte [esp + 0x1967], 0x52
mov byte [esp + 0x1968], 0x56
mov byte [esp + 0x1969], 0x45
mov ecx, edi
sets dl
not dl
mov byte [esp + 0x196a], 0x52
setge cl
not dl
dec ecx
mov byte [esp + 0x196b], 0x5f
mov byte [esp + 0x196c], 0x50
mov byte [esp + 0x196d], 0x4f
mov byte [esp + 0x196e], 0x53
xchg cl, dl
mov byte [esp + 0x196f], 0x5f
mov cx, cx
mov byte [esp + 0x1970], 0x4f
movsx cx, al
not cx
jmp 0x2139bb5
jne 0x22f947f
sub eax, edx
not cx
push eax
cbw
lea eax, [esp + 0x18dc]
push eax
mov ch, bl
xchg cx, cx
jmp 0x2174826
push ecx
jmp 0x22b1c94
jne 0x2303da2
sub eax, edx
push eax
not dx
cmove cx, dx
mov dl, 0x41
lea edx, [esp + 0x18dc]
jmp 0x226f954
add esi, 4
push esi
jmp 0x2131ba9
call fcn.00406880
lea edx, [esp + 0x234]
cwde
movsx cx, bl
push edx
setnp ch
lea eax, [esp + 0x124]
push eax
setbe cl
xchg ecx, ecx
movzx cx, dh
lea ecx, [esp + 0x1658]
jmp 0x20d3607
mov byte [esp + 0x1bfc], 0x16
jmp 0x20d21ed
xor ebx, ebx
cmp ch, 0x99
stc
add edi, edx
mov dword [esp + 0x24c], 0xf
cmp dl, 0xfc
stc
mov dword [esp + 0x248], ebx
test cx, 0x6320
mov byte [esp + 0x238], bl
test esi, edx
cmc
test edi, edi
jmp 0x22aefdb
call fcn.0045024c
add esp, 4
mov byte [esp + 0x1bf0], 6
cmc
jmp 0x21b4f4a
jmp 0x235710a
sub ecx, esi
mov eax, 0x92492493
btc dx, 0xb1
cmp bh, 0x53
xadd dh, dh
imul ecx
lea edx, [edx + ecx]
rcr al, cl
shl ax, 0x71
sar edx, 4
inc ax
cmp esi, esp
mov eax, edx
cmp ch, 0x40
shr eax, 0x1f
test ch, 0x85
test edx, ebp
add eax, edx
jne 0x2391732
call fcn.0046de02
mov esi, dword [esp + 0x12c]
test esp, ecx
cmp dword [esi + 0x18], 0x10
jb 0x2357107
mov esi, dword [esi + 4]
jmp 0x238cb94
jne 0x226c203
sub eax, ecx
mov ch, bh
movzx cx, ah
push eax
movzx eax, bx
movsx eax, cx
not ah
lea eax, [esp + 0x18e8]
mov ch, 0x13
setnp cl
cmovs ecx, ecx
push eax
lea ecx, [esp + 0x274]
jmp 0x221e122
mov dword [edx + 0x70], eax
jmp 0x2131bcc