Function at 0x23d3893
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 byte [esp + 0x31d], al
mov byte [esp + 0x31e], 0x6d
mov byte [esp + 0x31f], cl
mov byte [esp + 0x320], 0x2e
cmp esi, ecx
mov byte [esp + 0x321], cl
test esi, eax
clc
mov byte [esp + 0x322], 0x63
clc
stc
cmp si, cx
mov byte [esp + 0x323], 0x6b
stc
mov byte [esp + 0x324], bl
mov byte [esp + 0x3a0], cl
clc
jmp loc.0042539a
mov byte [esp + 0x4a5], 0x36
xor esi, 0x3ad757bd
rol si, 0x6f
mov byte [esp + 0x4a6], 0x46
not esi
btc esi, 0xa5
mov byte [esp + 0x4a7], cl
bsf esi, ebx
mov byte [esp + 0x4a8], 0x72
mov si, ax
bt si, 0x9f
mov byte [esp + 0x4a9], 0x6d
movsx esi, si
adc esi, esi
mov byte [esp + 0x4aa], 0x44
test cl, al
bts esi, ebp
xchg si, si
mov byte [esp + 0x4ab], 0x43
cmp bp, dx
mov byte [esp + 0x4ac], bl
shrd si, di, 0xc1
mov byte [esp + 0x45c], 0x56
mov byte [esp + 0x45d], 0x42
shrd esi, eax, 0x9c
bt si, dx
mov byte [esp + 0x45e], 0x4d
shrd si, si, 0xf5
mov byte [esp + 0x45f], dl
bswap si
xadd si, si
mov byte [esp + 0x460], cl
cmp si, 0x356
mov byte [esp + 0x461], 0x53
mov byte [esp + 0x462], 0x74
bt esi, ebp
rcr si, 0xf4
not si
mov byte [esp + 0x463], 0x64
mov byte [esp + 0x464], 0x43
bswap si
adc si, sp
btr esi, eax
mov byte [esp + 0x465], cl
cmovae esi, edi
rcl esi, 0x1d
jmp 0x223eb00
push eax
cbw
movsx ax, bh
push ecx
cbw
mov eax, 0x1424
jmp 0x21b0a8b
mov byte [esp + 0x38f], al
mov byte [esp + 0x4d6], al
mov byte [esp + 0x496], al
mov al, 0x65
mov si, di
movsx esi, cx
mov byte [esp + 0x38c], 0x5f
mov byte [esp + 0x38d], cl
neg dl
rcr dl, 0xde
mov byte [esp + 0x38e], 0x62
mov esi, 0x2b302614
mov byte [esp + 0x390], bl
mov byte [esp + 0x4d4], cl
bswap esi
mov byte [esp + 0x4d5], 0x62
mov byte [esp + 0x4d7], 0x5f
cmp dh, 0xff
shrd esi, ebp, 0xf4
mov byte [esp + 0x4d8], 0x66
cmp edx, esp
mov byte [esp + 0x4d9], cl
mov byte [esp + 0x4da], 0x72
rcl dl, cl
mov byte [esp + 0x4db], 0x6d
sbb dl, 0xb2
mov byte [esp + 0x4dc], bl
test edx, ebp
mov byte [esp + 0x494], cl
jmp 0x21532dd
mov byte [esp + 0x495], 0x62
or si, 0x175f
mov byte [esp + 0x497], 0x5f
mov byte [esp + 0x498], 0x61
mov byte [esp + 0x499], 0x70
cmc
mov byte [esp + 0x49a], 0x70
test di, 0x4c43
rcl dl, 0x94
mov byte [esp + 0x49b], bl
mov dl, cl
mov byte [esp + 0x44c], 0x57
mov byte [esp + 0x44d], 0x69
test bl, 0x4a
mov byte [esp + 0x44e], 0x6e
mov byte [esp + 0x44f], 0x64
test bx, bp
and dl, 0x8d
mov byte [esp + 0x450], cl
xor esi, ebp
mov esi, ebx
mov byte [esp + 0x451], 0x77
mov byte [esp + 0x452], bl
rol dl, cl
mov byte [esp + 0x414], 0x43
mov byte [esp + 0x415], 0x68
test ecx, edi
mov byte [esp + 0x416], al
xadd esi, esi
mov byte [esp + 0x417], 0x61
mov byte [esp + 0x418], 0x74
stc
mov byte [esp + 0x419], 0x20
adc dl, 0xb2
mov byte [esp + 0x41a], 0x45
mov byte [esp + 0x41b], 0x6e
cmp esi, ecx
mov byte [esp + 0x41c], 0x67
rol dl, cl
mov byte [esp + 0x41d], 0x69
sub esi, edi
mov byte [esp + 0x41e], 0x6e
mov byte [esp + 0x41f], al
cmp edi, 0x33d75d82
mov byte [esp + 0x420], bl
mov byte [esp + 0x63c], 0x54
mov byte [esp + 0x63d], 0x56
or si, 0x44df
sub esi, 0x7e64699b
mov byte [esp + 0x63e], 0x61
mov byte [esp + 0x63f], 0x6c
xor si, dx
sub dl, 0xca
mov byte [esp + 0x640], 0x75
cmp al, 0xea
stc
xor si, 0xe81
mov byte [esp + 0x641], al
sub dl, 9
rol esi, 0x85
mov byte [esp + 0x642], 0x43
adc esi, ebp
stc
mov byte [esp + 0x643], 0x68
mov byte [esp + 0x644], 0x61
xchg si, si
mov byte [esp + 0x645], 0x6e
mov byte [esp + 0x646], 0x67
mov byte [esp + 0x647], al
rcr dl, 0x40
mov byte [esp + 0x648], 0x46
not dl
xor esi, 0x5d03492f
mov byte [esp + 0x649], cl
bt si, 0x5d
setg dl
adc dl, 0x45
mov byte [esp + 0x64a], 0x72
mov byte [esp + 0x64b], 0x6d
bswap si
rcl dl, cl
shr dl, 0x36
mov byte [esp + 0x64c], bl
mov byte [esp + 0x4f8], 0x72
and dl, 0xdf
rol dl, 0x8a
mov byte [esp + 0x4f9], 0x61
mov byte [esp + 0x4fa], 0x70
and dl, 0x18
mov byte [esp + 0x4fb], 0x68
mov byte [esp + 0x4fc], 0x20
dec dl
mov byte [esp + 0x4fd], 0x2d
test esp, 0x633e78b9
cmp di, sp
mov byte [esp + 0x4fe], 0x20
mov byte [esp + 0x4ff], 0x5b
mov byte [esp + 0x500], bl
btr si, 0x13
add si, sp
mov byte [esp + 0x444], 0x2e
or dl, 0x36
rcr dl, cl
mov byte [esp + 0x445], 0x53
mov byte [esp + 0x446], 0x50
bswap esi
mov byte [esp + 0x447], 0x4b
xor esi, 0x1072657f
rcl dl, 0x10
mov byte [esp + 0x448], 0x58
mov byte [esp + 0x449], 0x5d
rol esi, 0xe2
xchg dl, dl
xadd si, si
mov byte [esp + 0x44a], bl
shl dl, 0xc5
mov byte [esp + 0x4b0], 0x5b
neg esi
btr esi, 0xd7
mov byte [esp + 0x4b1], cl
bt si, 0xce
sar dl, cl
mov dl, 0x52
mov dl, 0x73
mov byte [esp + 0x4b2], 0x6e
stc
cmp cx, si
mov byte [esp + 0x4b3], 0x68
rcl si, 0x5e
bt si, dx
inc si
mov byte [esp + 0x4b4], cl
and si, 0xb22
xor esi, 0x75407460
mov byte [esp + 0x4b5], cl
mov byte [esp + 0x4b6], 0x6b
and esi, edi
mov byte [esp + 0x4b7], 0x2e
mov esi, 0x7fe97f8c
mov byte [esp + 0x4b8], bl
cmovo esi, edi
cmp bh, 0x3d
mov byte [esp + 0x3dc], 0x2e
mov byte [esp + 0x3dd], dl
mov byte [esp + 0x3de], al
mov byte [esp + 0x3df], 0x72
btr si, cx
or esi, esp
mov byte [esp + 0x3e0], 0x5d
mov byte [esp + 0x3e1], bl
mov byte [esp + 0x33c], 0x23
not si
mov esi, ecx
mov esi, 0x64613be1
mov byte [esp + 0x33d], 0x33
mov byte [esp + 0x33e], 0x32
movsx esi, dx
mov byte [esp + 0x33f], 0x37
or si, bp
xor esi, ecx
mov byte [esp + 0x340], 0x37
test dl, 0x1f
xchg esi, esi
mov byte [esp + 0x341], 0x30
sbb esi, edi
bsr si, dx
mov esi, 0x7b3b3cab
mov byte [esp + 0x342], bl
mov byte [esp + 0x394], 0x43
mov byte [esp + 0x395], cl
mov byte [esp + 0x396], 0x6d
sar esi, 7
mov byte [esp + 0x397], 0x62
mov byte [esp + 0x398], cl
sbb esi, esi
jmp 0x2183681
mov byte [esp + 0x399], 0x4c
cmovo si, bp
btc esi, ebx
cmp di, 0x5333
mov byte [esp + 0x39a], 0x42
btc si, 0x4d
adc esi, 0x5a696cda
mov byte [esp + 0x39b], cl
mov byte [esp + 0x39c], 0x78
mov byte [esp + 0x39d], bl
mov byte [esp + 0x4bc], 0x70
test eax, ebp
mov byte [esp + 0x4bd], 0x63
btc esi, 0x8f
mov byte [esp + 0x4be], 0x68
sbb esi, 0x55790d39
mov byte [esp + 0x4bf], 0x75
xadd esi, esi
mov byte [esp + 0x4c0], 0x6e
stc
jmp 0x22f062c
call fcn.00474480
mov eax, dword [0x51f620]
xor eax, esp
mov dword [esp + 0x1420], eax
rcr dl, 0x90
sal ah, cl
push ebx
cmp edi, 0x743f5d3d
shl dl, 0xff
shl dl, cl
push esi
and eax, 0x70652e5e
push edi
test dl, dh
movsx eax, bx
mov eax, dword [0x51f620]
inc dl
mov dl, 0x53
xor eax, esp
push eax
cmp si, bx
adc eax, ebx
lea eax, [esp + 0x1438]
mov dword fs:[0], eax
xor ebx, ebx
mov cl, 0x6f
bts si, di
mov al, 0x6a
jmp 0x20f44be
mov byte [esp + 0x3c8], 0x54
mov byte [esp + 0x3c9], 0x36
mov byte [esp + 0x3ca], 0x4d
xadd si, si
not esi
btc esi, eax
mov byte [esp + 0x3cb], 0x61
bswap esi
mov byte [esp + 0x3cc], 0x69
mov byte [esp + 0x3cd], 0x6e
mov byte [esp + 0x3ce], bl
inc si
neg esi
sal esi, 0x90
mov byte [esp + 0x49c], 0x54
sub si, ax
bt esi, 0x4f
clc
mov byte [esp + 0x49d], 0x68
cmc
bsr esi, eax
mov byte [esp + 0x49e], 0x75
cmovb esi, edx
shld si, ax, 0x3a
mov byte [esp + 0x49f], 0x6e
dec esi
mov byte [esp + 0x4a0], 0x64
mov byte [esp + 0x4a1], al
bswap esi
mov byte [esp + 0x4a2], 0x72
movzx esi, bp
btc esi, 0x72
mov byte [esp + 0x4a3], 0x52
add si, 0xb5b
mov byte [esp + 0x4a4], 0x54
jmp 0x20e199a
mov byte [esp + 0x466], 0x6d
btc esi, ebp
adc esi, 0x67db1bd7
rcl si, 0xea
mov byte [esp + 0x467], 0x70
shrd esi, edi, 0xbf
xadd esi, esi
mov byte [esp + 0x468], 0x4d
cmovnp si, dx
mov byte [esp + 0x469], 0x67
sal esi, 0x14
jmp 0x223f109
mov byte [esp + 0x46a], 0x72
inc esi
sub si, 0x6029
mov byte [esp + 0x46b], bl
cmp si, 0x1ca6
xor esi, ebx
mov byte [esp + 0x358], 0x4c
rol si, 0x3d
mov byte [esp + 0x359], cl
bsf si, bx
and esi, ebx
ror esi, 0x15
mov byte [esp + 0x35a], 0x67
bt esi, 0x75
clc
mov byte [esp + 0x35b], 0x69
sal si, 0xae
mov byte [esp + 0x35c], 0x6e
cmp di, si
mov byte [esp + 0x35d], 0x32
sar esi, 0x32
mov byte [esp + 0x35e], 0x37
xadd si, si
add si, 0x4a9c
btr esi, 0xe9
mov byte [esp + 0x35f], 0x30
mov byte [esp + 0x360], 0x2e
shl si, 0x49
mov byte [esp + 0x361], 0x44
add si, 0x7b81
cmp al, 0xdb
mov byte [esp + 0x362], 0x4c
test dx, si
rol si, 0x3a
btr esi, 0xc8
mov byte [esp + 0x363], 0x4c
bsf si, sp
sbb si, 0x322e
mov byte [esp + 0x364], bl
or esi, ebx
sbb esi, edx
mov byte [esp + 0x34c], 0x48
mov byte [esp + 0x34d], al
sbb si, dx
mov byte [esp + 0x34e], 0x6c
movsx esi, sp
mov byte [esp + 0x34f], 0x70
bts si, sp
mov byte [esp + 0x350], al
shl esi, 0x87
mov byte [esp + 0x351], 0x72
mov byte [esp + 0x352], 0x2e
and si, 0x1214
mov byte [esp + 0x353], 0x64
add si, 0x20d5
cmove si, bx
mov byte [esp + 0x354], 0x6c
shld esi, edi, 0x9f
bts si, bp
cmc
mov byte [esp + 0x355], 0x6c
mov byte [esp + 0x356], bl
inc esi
mov byte [esp + 0x2e4], dl
bts si, di
or si, 0x794c
movzx esi, si
mov byte [esp + 0x2e5], dl
mov byte [esp + 0x2e6], 0x2e
mov byte [esp + 0x2e7], 0x6d
ror esi, 0x71
mov esi, ebp
adc esi, esi
mov byte [esp + 0x2e8], 0x70
sub esi, eax
adc si, 0x14e1
rcl si, 9
mov byte [esp + 0x2e9], 0x33
mov byte [esp + 0x2ea], bl
sub si, 0x41b3
mov byte [esp + 0x314], 0x70
dec esi
sbb si, di
mov byte [esp + 0x315], dl
bsf si, si
add si, bx
ror si, 0x29
mov byte [esp + 0x316], 0x64
inc esi
jmp 0x22e7746
mov byte [esp + 0x3ba], 0x2e
mov byte [esp + 0x3bb], 0x74
test di, 0x702f
test bp, bp
mov byte [esp + 0x3bc], 0x78
mov byte [esp + 0x3bd], 0x74
mov byte [esp + 0x3be], bl
stc
test sp, dx
mov byte [esp + 0x31c], 0x44
cmc
clc
jmp 0x5310ad
mov byte [esp + 0x317], 0x2e
bsf esi, edi
xchg esi, esi
mov byte [esp + 0x318], 0x64
bt esi, edx
mov byte [esp + 0x319], 0x6c
btc esi, edx
xadd si, si
mov byte [esp + 0x31a], 0x6c
sub si, bx
mov byte [esp + 0x31b], bl
bsr esi, ebp
movsx esi, ax
mov byte [esp + 0x304], 0x4f
mov byte [esp + 0x305], 0x43
mov byte [esp + 0x306], 0x52
mov byte [esp + 0x307], 0x2e
mov byte [esp + 0x308], 0x64
bt si, 0x3d
mov byte [esp + 0x309], 0x6c
bswap si
mov byte [esp + 0x30a], 0x6c
bsf esi, esi
jmp 0x2348827
mov byte [esp + 0x4c1], 0x74
add esi, eax
shrd si, dx, 0xb
mov byte [esp + 0x4c2], al
bt si, dx
mov byte [esp + 0x4c3], 0x72
movsx esi, sp
and esi, edx
mov byte [esp + 0x4c4], bl
mov byte [esp + 0x4ec], 0x50
btr si, di
mov byte [esp + 0x4ed], 0x43
sub si, 0x47b0
xchg si, si
bts esi, esp
mov byte [esp + 0x4ee], 0x48
mov byte [esp + 0x4ef], 0x75
btr esi, 0xb
sbb si, 0x3c0b
mov byte [esp + 0x4f0], 0x6e
mov byte [esp + 0x4f1], 0x74
rcl si, 0x7b
mov byte [esp + 0x4f2], al
mov byte [esp + 0x4f3], 0x72
xadd esi, esi
mov byte [esp + 0x4f4], bl
add si, 0x5653
mov byte [esp + 0x40c], 0x54
and esi, ebp
mov byte [esp + 0x40d], al
mov byte [esp + 0x40e], dl
adc si, ax
inc si
movzx esi, si
mov byte [esp + 0x40f], 0x6c
bts si, sp
mov byte [esp + 0x410], 0x61
mov byte [esp + 0x411], bl
mov byte [esp + 0x3c0], 0x54
xor esi, 0xec832c1
add si, 0x6616
sbb esi, 0xd457c97
mov byte [esp + 0x3c1], 0x68
sal si, 0x43
mov byte [esp + 0x3c2], 0x75
mov byte [esp + 0x3c3], 0x6e
adc esi, ebx
mov byte [esp + 0x3c4], 0x64
mov byte [esp + 0x3c5], al
or esi, edi
mov byte [esp + 0x3c6], 0x72
sub esi, 0x1ad6630c
mov byte [esp + 0x3c7], 0x52
xor si, 0x6448
jmp 0x21fe0a0
mov word [esp + 0x87a], si
cmc
clc
mov word [esp + 0x87c], si
shr esi, 0x47
bsf esi, edx
mov esi, 0x20
clc
cmc
mov word [esp + 0x87e], si
bt esi, esi
mov esi, 0x36
cmp bp, ax
cmc
mov word [esp + 0x880], si
mov esi, 0x35
stc
cmp cl, 0xa8
test eax, ebx
mov word [esp + 0x882], si
bts esi, eax
mov esi, 0x20
test si, 0x1437
mov byte [esp + 0x3b5], 0x31
mov byte [esp + 0x3b6], 0x36
test di, 0x44d2
stc
cmp bx, bp
mov byte [esp + 0x3b7], 0x33
stc
cmp bx, 0x7a15
mov byte [esp + 0x3b8], 0x38
test cx, 0x6e89
mov byte [esp + 0x3b9], 0x34
cmp bp, cx
jmp 0x22a75e1
mov byte [esp + 0x30b], bl
adc si, si
mov byte [esp + 0x2dc], dl
mov byte [esp + 0x2dd], dl
mov byte [esp + 0x2de], 0x2e
adc si, bx
xadd si, si
mov byte [esp + 0x2df], 0x64
add si, 0x5eaf
dec si
movsx esi, bp
mov byte [esp + 0x2e0], 0x6c
stc
mov byte [esp + 0x2e1], 0x6c
mov byte [esp + 0x2e2], bl
movzx esi, cx
mov byte [esp + 0x3b0], 0x6d
not esi
bt si, sp
mov byte [esp + 0x3b1], 0x61
or esi, esp
btc esi, esp
mov byte [esp + 0x3b2], 0x70
bsr si, sp
mov byte [esp + 0x3b3], dl
or si, 0x37d7
xor si, cx
adc esi, 0x7ef303c
mov byte [esp + 0x3b4], 0x5c
mov esi, 0x35
stc
mov word [esp + 0x85c], si
mov esi, 0x30
clc
cmp ebp, 0x164e0cf5
mov word [esp + 0x85e], si
mov esi, 0x20
mov word [esp + 0x860], si
mov esi, 0x30
mov word [esp + 0x862], si
mov word [esp + 0x864], si
sar si, 0x40
mov esi, 0x20
clc
stc
mov word [esp + 0x866], si
btc si, dx
mov esi, 0x36
mov word [esp + 0x868], si
add si, 0x5ff
mov esi, 0x46
mov word [esp + 0x86a], si
rol esi, 0x72
and esi, esp
mov esi, 0x20
cmp ebx, edi
test sp, dx
mov word [esp + 0x86c], si
btr si, 0xfa
btr esi, ecx
mov esi, 0x30
clc
mov word [esp + 0x86e], si
cmc
cmp edi, 0x73f15887
mov word [esp + 0x870], si
bsr si, ax
neg esi
mov esi, 0x20
stc
cmp si, 0x6bf5
mov word [esp + 0x872], si
mov esi, 0x37
cmp ax, dx
stc
mov word [esp + 0x874], si
bts si, cx
rcl si, 0x13
sub si, dx
mov esi, 0x33
mov word [esp + 0x876], si
adc si, ax
bswap si
mov esi, 0x20
stc
test bp, bx
mov word [esp + 0x878], si
cmp esp, eax
mov esi, 0x30
cmp ch, cl
jmp 0x23173ae
push ebp
bt eax, esi
mov ebp, esp
and esp, 0xfffffff8
bswap eax
movsx eax, di
cbw
push 0xffffffffffffffff
mov eax, eax
bswap eax
push 0x4e51d8
mov eax, dword fs:[0]
jmp 0x20e908f