Function at 0x4109af
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x64
movzx eax, word [0x4170fe]
and ax, 0x73b9
mov word [0x4170fa], ax
movzx eax, word [0x4170fe]
sub ax, 0x863
mov word [0x4170fe], ax
movzx eax, word [0x4170fe]
movzx eax, ax
sub eax, 0x19cf2ddb
mov dword [0x417100], eax
movzx eax, byte [0x4170fd]
movzx eax, al
or ax, 0x51b3
mov word [0x4170fe], ax
movzx eax, byte [0x4170fc]
movzx eax, al
and eax, 0xf54fc667
mov dword [0x417100], eax
mov eax, dword [0x417100]
sub eax, 0x2956a80c
mov dword [0x417100], eax
mov dword [ebp - 0xc], 0x8772
movzx eax, word [0x4170f8]
movzx eax, ax
and eax, 0x4036f945
mov dword [0x417100], eax
movzx eax, word [0x4170f8]
or eax, 0xffffff84
mov byte [0x4170fc], al
movzx eax, word [0x4170f8]
imul ax, ax, 0xa27c
mov word [0x4170f8], ax
movzx eax, word [0x4170fe]
add ax, 0x181a
mov word [0x4170f8], ax
mov eax, dword [0x417100]
xor ax, 0x28a3
mov word [0x4170f8], ax
movzx eax, byte [0x4170fc]
movzx eax, al
add eax, 0x59a559ae
mov dword [0x417100], eax
movzx eax, word [0x4170fa]
or ax, 0x52c6
mov word [0x4170fe], ax
cmp dword [ebp + 8], 0
je 0x410ab0
cmp dword [ebp + 0xc], 0
jne 0x410b2a
mov eax, dword [0x417100]
add eax, 0x11f7c4f9
mov dword [0x417100], eax
movzx eax, word [0x4170fe]
and eax, 0xffffff9c
mov byte [0x4170fc], al
movzx eax, word [0x4170fe]
sub ax, 0x4378
mov word [0x4170f8], ax
movzx eax, byte [0x4170fc]
add eax, 0x7e
mov byte [0x4170fd], al
movzx eax, word [0x4170fa]
movzx eax, ax
and eax, 0xf32e97c9
mov dword [0x417100], eax
mov eax, dword [0x417100]
xor ax, 0xe23a
mov word [0x4170fe], ax
mov eax, dword [0x417100]
and ax, 0x4957
mov word [0x4170fa], ax
mov eax, 0
jmp 0x411812
movzx eax, word [0x4170fe]
xor ax, 0x4027
mov word [0x4170f8], ax
mov eax, dword [0x417100]
mov edx, 0xffffff96
imul eax, edx
mov byte [0x4170fc], al
mov eax, dword [0x417100]
xor ax, 0xf905
mov word [0x4170fa], ax
mov dword [ebp - 0x30], 0
movzx eax, word [0x4170f8]
add ax, 0x2422
mov word [0x4170fe], ax
movzx eax, word [0x4170f8]
add ax, 0x62fb
mov word [0x4170fe], ax
movzx eax, word [0x4170f8]
xor eax, 0x6c
mov byte [0x4170fc], al
movzx eax, word [0x4170f8]
and ax, 0xa93b
mov word [0x4170fa], ax
add dword [ebp - 0xc], 1
mov eax, dword [0x417100]
imul ax, ax, 0xa845
mov word [0x4170f8], ax
movzx eax, word [0x4170f8]
and eax, 0xffffffc9
mov byte [0x4170fd], al
movzx eax, word [0x4170f8]
movzx eax, ax
imul eax, eax, 0x61f398d6
mov dword [0x417100], eax
movzx eax, word [0x4170fe]
or ax, 0xae74
mov word [0x4170f8], ax
movzx eax, byte [0x4170fc]
movzx eax, al
xor ax, 0x8a8
mov word [0x4170fe], ax
movzx eax, byte [0x4170fd]
movzx eax, al
imul ax, ax, 0x4485
mov word [0x4170f8], ax
movzx eax, word [0x4170fa]
mov edx, eax
mov eax, edx
shl eax, 7
sub eax, edx
mov byte [0x4170fd], al
mov eax, dword [0x417100]
imul ax, ax, 0xcf57
mov word [0x4170fa], ax
mov eax, dword [ebp + 8]
cdq
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
movzx eax, word [0x4170fa]
and ax, 0x34a5
mov word [0x4170fe], ax
movzx eax, word [0x4170f8]
add eax, 0x7b
mov byte [0x4170fc], al
movzx eax, word [0x4170fa]
xor ax, 0xd543
mov word [0x4170fa], ax
movzx eax, word [0x4170f8]
sub eax, 0x31
mov byte [0x4170fd], al
movzx eax, byte [0x4170fd]
movzx eax, al
and ax, 0x2d18
mov word [0x4170fe], ax
movzx eax, word [0x4170fe]
and eax, 0xfffffff2
mov byte [0x4170fd], al
movzx eax, word [0x4170f8]
imul ax, ax, 0x14bc
mov word [0x4170f8], ax
movzx eax, byte [0x4170fd]
movzx eax, al
xor eax, 0xbc8819f
mov dword [0x417100], eax
add dword [ebp - 0xc], 1
mov eax, dword [0x417100]
sub ax, 0x11ab
mov word [0x4170fe], ax
movzx eax, byte [0x4170fc]
movzx eax, al
xor ax, 0xbbc5
mov word [0x4170fe], ax
movzx eax, byte [0x4170fd]
movzx eax, al
or eax, 0x84542e12
mov dword [0x417100], eax
mov dword [esp], 0xdd
mov eax, dword [sym.imp.USER32.dll_GetSysColorBrush]
call eax
sub esp, 4
movzx eax, byte [0x4170fc]
movzx eax, al
and ax, 0x2b45
mov word [0x4170fe], ax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x3c]
mov edx, eax
mov eax, dword [ebp - 0x38]
add eax, edx
mov dword [ebp - 0x3c], eax
mov eax, dword [0x417100]
sub eax, 0x6ad9d3d5
mov dword [0x417100], eax
movzx eax, byte [0x4170fd]
movzx eax, al
and eax, 0xde93817e
mov dword [0x417100], eax
movzx eax, word [0x4170fe]
sub ax, 0x583b
mov word [0x4170f8], ax
movzx eax, byte [0x4170fd]
movzx eax, al
and ax, 0xda33
mov word [0x4170fa], ax
mov eax, dword [0x417100]
sub eax, 0x95b0854
mov dword [0x417100], eax
mov eax, dword [0x417100]
xor ax, 0x4df8
mov word [0x4170fe], ax
movzx eax, word [0x4170fa]
xor eax, 0x74
mov byte [0x4170fd], al
add dword [ebp - 0xc], 1
mov eax, dword [0x417100]
and ax, 0x9381
mov word [0x4170fe], ax
mov eax, dword [0x417100]
or eax, 0x4d
mov byte [0x4170fd], al
mov eax, dword [0x417100]
imul ax, ax, 0x6af
mov word [0x4170fe], ax
movzx eax, byte [0x4170fd]
movzx eax, al
add ax, 0x101f
mov word [0x4170f8], ax
mov eax, dword [ebp - 0x3c]
add eax, 0x78
mov dword [ebp - 0x40], eax
movzx eax, byte [0x4170fd]
sub eax, 0x52
mov byte [0x4170fc], al
mov dword [esp + 4], 0
mov dword [esp], 0x38
mov eax, dword [sym.imp.USER32.dll_ReleaseDC]
call eax
sub esp, 8
movzx eax, byte [0x4170fd]
movzx eax, al
and eax, 0x45d7346a
mov dword [0x417100], eax
add dword [ebp - 0xc], 1
movzx eax, byte [0x4170fc]
sub eax, 0x36
mov byte [0x4170fd], al
movzx eax, word [0x4170fe]
movzx eax, ax
imul eax, eax, 0x659e63b
mov dword [0x417100], eax
movzx eax, byte [0x4170fd]
and eax, 0x17
mov byte [0x4170fd], al
movzx eax, word [0x4170fa]
add ax, 0x6d1b
mov word [0x4170fa], ax
movzx eax, byte [0x4170fd]
and eax, 0xffffff84
mov byte [0x4170fc], al
movzx eax, byte [0x4170fd]
add eax, 0x7e
mov byte [0x4170fc], al
movzx eax, word [0x4170f8]
and ax, 0xd0a6
mov word [0x4170fa], ax
mov eax, dword [ebp - 0x40]
mov edx, dword [eax]
mov eax, dword [ebp - 0x38]
add eax, edx
mov dword [ebp - 0x44], eax
movzx eax, word [0x4170fa]
and eax, 0x31
mov byte [0x4170fc], al
mov dword [esp], 0x78
mov eax, dword [sym.imp.USER32.dll_GetDC]
call eax
sub esp, 4
movzx eax, word [0x4170fe]
sub eax, 0x43
mov byte [0x4170fd], al
add dword [ebp - 0xc], 1
movzx eax, byte [0x4170fc]
sub eax, 0x75
mov byte [0x4170fd], al
movzx eax, byte [0x4170fd]
movzx eax, al
add ax, 0x60f7
mov word [0x4170fe], ax
movzx eax, byte [0x4170fd]
movzx eax, al
sub eax, 0x1f612203
mov dword [0x417100], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x20]
mov ecx, eax
mov ebx, 0
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
add eax, ecx
adc edx, ebx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
movzx eax, byte [0x4170fc]
movzx eax, al
sub ax, 0x63f5
mov word [0x4170fe], ax
movzx eax, byte [0x4170fd]
sub eax, 0x3b
mov byte [0x4170fd], al
movzx eax, word [0x4170fa]
sub ax, 0x1876
mov word [0x4170fe], ax
add dword [ebp - 0xc], 1
movzx eax, word [0x4170f8]
or ax, 0x6d38
mov word [0x4170f8], ax
movzx eax, word [0x4170fe]
add ax, 0x5dcb
mov word [0x4170f8], ax
movzx eax, word [0x4170f8]
add eax, 0x65
mov byte [0x4170fc], al
movzx eax, word [0x4170f8]
and ax, 0x96c3
mov word [0x4170fe], ax
movzx eax, word [0x4170fa]
imul ax, ax, 0xd828
mov word [0x4170f8], ax
movzx eax, byte [0x4170fc]
movzx eax, al
xor ax, 0x8108
mov word [0x4170f8], ax
movzx eax, word [0x4170fe]
xor ax, 0x1b86
mov word [0x4170fa], ax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x1c]
mov ecx, eax
mov ebx, 0
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
add eax, ecx
adc edx, ebx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
movzx eax, byte [0x4170fc]
movzx eax, al
or ax, 0x57d0
mov word [0x4170fa], ax
movzx eax, byte [0x4170fc]
movzx eax, al
xor ax, 0xad43
mov word [0x4170f8], ax
movzx eax, byte [0x4170fc]
movzx eax, al
sub ax, 0x2dcf
mov word [0x4170f8], ax
movzx eax, word [0x4170f8]
imul ax, ax, 0x6091
mov word [0x4170f8], ax
movzx eax, word [0x4170fa]
movzx eax, ax
xor eax, 0x8c50940e
mov dword [0x417100], eax
mov eax, dword [0x417100]
add ax, 0x24a9
mov word [0x4170fa], ax
mov eax, dword [0x417100]
mov edx, eax
mov eax, edx
add eax, eax
add eax, edx
shl eax, 2
add eax, edx
mov byte [0x4170fc], al
add dword [ebp - 0xc], 1
mov eax, dword [0x417100]
xor eax, 0x4e
mov byte [0x4170fc], al
movzx eax, byte [0x4170fd]
movzx eax, al
imul ax, ax, 0xfa46
mov word [0x4170fa], ax
movzx eax, byte [0x4170fc]
movzx eax, al
sub eax, 0x55df4cfc
mov dword [0x417100], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x24]
mov ecx, eax
mov ebx, 0
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
add eax, ecx
adc edx, ebx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
movzx eax, word [0x4170fe]
and ax, 0x5f44
mov word [0x4170f8], ax
movzx eax, word [0x4170f8]
imul ax, ax, 0x3aa2
mov word [0x4170fe], ax
movzx eax, byte [0x4170fc]
movzx eax, al
sub ax, 0x4e63
mov word [0x4170fa], ax
movzx eax, byte [0x4170fc]
xor eax, 0xffffffa3
mov byte [0x4170fc], al
mov dword [esp], 0xf5
mov eax, dword [sym.imp.USER32.dll_IsWindow]
call eax
sub esp, 4
movzx eax, byte [0x4170fc]
movzx eax, al
add eax, 0x3ec94a50
mov dword [0x417100], eax
add dword [ebp - 0xc], 1
movzx eax, byte [0x4170fc]
movzx eax, al
or ax, 0x68b9
mov word [0x4170f8], ax
movzx eax, word [0x4170fe]
xor eax, 5
mov byte [0x4170fc], al
movzx eax, byte [0x4170fd]
movzx eax, al
or ax, 0x3975
mov word [0x4170fe], ax
mov dword [esp], 0x35
mov eax, dword [sym.imp.USER32.dll_GetSysColorBrush]
call eax
sub esp, 4
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
movzx eax, word [0x4170f8]
add ax, 0x5677
mov word [0x4170f8], ax
movzx eax, byte [0x4170fd]
movzx eax, al
imul ax, ax, 0xbd71
mov word [0x4170fa], ax
movzx eax, word [0x4170fe]
and ax, 0x5049
mov word [0x4170f8], ax
movzx eax, word [0x4170f8]
add eax, 0x1f
mov byte [0x4170fd], al
add dword [ebp - 0xc], 1
movzx eax, byte [0x4170fd]
mov edx, 0xffffffdb
imul eax, edx
mov byte [0x4170fc], al
movzx eax, word [0x4170fe]
movzx eax, ax
add eax, 0xff34195
mov dword [0x417100], eax
movzx eax, word [0x4170f8]
or eax, 0xffffffc7
mov byte [0x4170fc], al
movzx eax, word [0x4170fe]
and eax, 0xffffffd3
mov byte [0x4170fc], al
movzx eax, word [0x4170fa]
or eax, 0xffffff86
mov byte [0x4170fd], al
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x2c], eax
movzx eax, byte [0x4170fc]
movzx eax, al
add eax, 0x40dc9f04
mov dword [0x417100], eax
movzx eax, word [0x4170fe]
sub eax, 0x5c
mov byte [0x4170fc], al
mov eax, dword [0x417100]
add eax, 0x19
mov byte [0x4170fd], al
movzx eax, word [0x4170f8]
add ax, 0x5fbb
mov word [0x4170fe], ax
movzx eax, byte [0x4170fc]
movzx eax, al
xor ax, 0x4ff4
mov word [0x4170f8], ax
movzx eax, byte [0x4170fd]
movzx eax, al
and ax, 0x9d98
mov word [0x4170f8], ax
movzx eax, word [0x4170fe]
or ax, 0x613a
mov word [0x4170f8], ax
add dword [ebp - 0xc], 1
mov dword [esp + 4], 0
mov dword [esp], 0x26
mov eax, dword [sym.imp.USER32.dll_GetSystemMenu]
call eax
sub esp, 8
movzx eax, byte [0x4170fc]
add eax, 0x67
mov byte [0x4170fd], al
movzx eax, word [0x4170f8]
and eax, 0xffffff94
mov byte [0x4170fc], al
movzx eax, word [0x4170fe]
mov edx, eax
mov eax, edx
shl eax, 3
sub eax, edx
mov byte [0x4170fc], al
movzx eax, byte [0x4170fc]
movzx eax, al
and ax, 0x3a32
mov word [0x4170fa], ax
jmp 0x41178d
movzx eax, byte [0x4170fc]
movzx eax, al
sub ax, 0x6bf7
mov word [0x4170fa], ax
movzx eax, byte [0x4170fd]
movzx eax, al
xor eax, 0x42f90feb
mov dword [0x417100], eax
movzx eax, byte [0x4170fd]
mov edx, 0xffffffab
imul eax, edx
mov byte [0x4170fd], al
movzx eax, word [0x4170fa]
xor ax, 0x2fc7
mov word [0x4170fa], ax
mov eax, dword [0x417100]
shl eax, 2
mov byte [0x4170fd], al
movzx eax, word [0x4170f8]
or ax, 0xb9c2
mov word [0x4170f8], ax
movzx eax, word [0x4170fa]
movzx eax, ax
add eax, 0x6d36057
mov dword [0x417100], eax
movzx eax, word [0x4170f8]
movzx eax, ax
add eax, 0x4a652d07
mov dword [0x417100], eax
movzx eax, word [0x4170f8]
and ax, 0x3851
mov word [0x4170f8], ax
movzx eax, byte [0x4170fc]
xor eax, 0xffffff9e
mov byte [0x4170fd], al
movzx eax, byte [0x4170fc]
xor eax, 0x66
mov byte [0x4170fd], al
add dword [ebp - 0xc], 1
movzx eax, byte [0x4170fd]
movzx eax, al
add ax, 0x2fed
mov word [0x4170fa], ax
movzx eax, byte [0x4170fc]
movzx eax, al
and ax, 0x59d9
mov word [0x4170fa], ax
mov eax, dword [0x417100]
imul eax, eax, 0xc9c5e937
mov dword [0x417100], eax
movzx eax, word [0x4170fe]
movzx eax, ax
sub eax, 0x155a0461
mov dword [0x417100], eax
movzx eax, byte [0x4170fc]
and eax, 0xfffffff5
mov byte [0x4170fd], al
movzx eax, word [0x4170f8]
imul ax, ax, 0x57e9
mov word [0x4170fe], ax
mov eax, dword [0x417100]
or ax, 0x8c11
mov word [0x4170f8], ax
movzx eax, byte [0x4170fd]
add eax, 0x72
mov byte [0x4170fd], al
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
mov eax, dword [ebp - 0x38]
add eax, edx
mov dword [ebp - 0x54], eax
movzx eax, word [0x4170f8]
mov edx, 0xffffffec
imul eax, edx
mov byte [0x4170fc], al
movzx eax, word [0x4170f8]
sub eax, 0x1a
mov byte [0x4170fd], al
movzx eax, word [0x4170fa]
sub ax, 0x1b1b
mov word [0x4170fa], ax
movzx eax, byte [0x4170fd]
movzx eax, al
and ax, 0x4e9
mov word [0x4170fe], ax
movzx eax, byte [0x4170fd]
movzx eax, al
xor ax, 0x7cad
mov word [0x4170fa], ax
movzx eax, word [0x4170f8]
xor ax, 0x695d
mov word [0x4170fa], ax
mov eax, dword [ebp - 0x54]
mov dword [esp], eax
call fcn.004131a5
cmp dword [ebp + 0xc], eax
sete al
test al, al
je 0x411672
mov dword [esp + 4], 0
mov dword [esp], 0xae
mov eax, dword [sym.imp.USER32.dll_GetIconInfo]
call eax
sub esp, 8
movzx eax, byte [0x4170fc]
movzx eax, al
add ax, 0x14fb
mov word [0x4170fe], ax
movzx eax, word [0x4170fa]
or eax, 0xfffffff4
mov byte [0x4170fc], al
movzx eax, word [0x4170fa]
or ax, 0xde9a
mov word [0x4170f8], ax
movzx eax, word [0x4170fa]
imul ax, ax, 0x7f7e
mov word [0x4170f8], ax
movzx eax, word [0x4170fe]
imul ax, ax, 0x457b
mov word [0x4170fe], ax
mov eax, dword [0x417100]
add eax, 0x1987773e
mov dword [0x417100], eax
movzx eax, byte [0x4170fc]
xor eax, 0xffffffc5
mov byte [0x4170fc], al
mov eax, dword [0x417100]
and ax, 0xb5f5
mov word [0x4170f8], ax
movzx eax, byte [0x4170fd]
movzx eax, al
xor eax, 0x2b44616d
mov dword [0x417100], eax
movzx eax, word [0x4170fe]
movzx eax, ax
imul eax, eax, 0x583fdb82
mov dword [0x417100], eax
add dword [ebp - 0xc], 1
mov eax, dword [ebp - 0x20]
movzx eax, word [eax]
movzx eax, ax
shl eax, 2
mov edx, 0
add dword [ebp - 0x50], eax
adc dword [ebp - 0x4c], edx
movzx eax, word [0x4170fa]
add ax, 0x35e7
mov word [0x4170fe], ax
movzx eax, word [0x4170fa]
add ax, 0x364d
mov word [0x4170fa], ax
movzx eax, word [0x4170fa]
sub ax, 0x7200
mov word [0x4170fe], ax
mov eax, dword [0x417100]
sub ax, 0x4f68
mov word [0x4170f8], ax
add dword [ebp - 0xc], 1
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov ecx, eax
mov ebx, 0
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
add eax, ecx
adc edx, ebx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
jmp 0x4117a3
movzx eax, word [0x4170fe]
movzx eax, ax
add eax, 0x1c0161da
mov dword [0x417100], eax
movzx eax, word [0x4170fe]
and eax, 0xe
mov byte [0x4170fd], al
mov eax, dword [0x417100]
imul eax, eax, 0x9661a64b
mov dword [0x417100], eax
add dword [ebp - 0xc], 1
add dword [ebp - 0x18], 4
adc dword [ebp - 0x14], 0
mov eax, dword [0x417100]
or ax, 0x800e
mov word [0x4170f8], ax
mov eax, dword [0x417100]
or eax, 0xffffff93
mov byte [0x4170fd], al
movzx eax, word [0x4170fe]
movzx eax, ax
add eax, 0x13a303f
mov dword [0x417100], eax
mov eax, dword [0x417100]
and ax, 0x190
mov word [0x4170f8], ax
movzx eax, word [0x4170f8]
movzx eax, ax
and eax, 0xd396c7c1
mov dword [0x417100], eax
movzx eax, word [0x4170fe]
movzx eax, ax
add eax, 0x2ed55ccd
mov dword [0x417100], eax
movzx eax, word [0x4170f8]
or ax, 0x1bf
mov word [0x4170fe], ax
add dword [ebp - 0xc], 1
add dword [ebp - 0x20], 2
adc dword [ebp - 0x1c], 0
movzx eax, word [0x4170f8]
movzx eax, ax
add eax, 0xebcf40c
mov dword [0x417100], eax
movzx eax, word [0x4170f8]
or ax, 0xc99d
mov word [0x4170f8], ax
movzx eax, word [0x4170fe]
add ax, 0x495e
mov word [0x4170f8], ax
movzx eax, word [0x4170fe]
and eax, 0x2b
mov byte [0x4170fd], al
movzx eax, byte [0x4170fc]
sub eax, 0x5f
mov byte [0x4170fd], al
add dword [ebp - 0xc], 1
mov eax, dword [ebp - 0x2c]
lea edx, [eax - 1]
mov dword [ebp - 0x2c], edx
test eax, eax
setne al
test al, al
jne 0x411345
movzx eax, byte [0x4170fc]
add eax, 0x6a
mov byte [0x4170fd], al
movzx eax, word [0x4170fa]
imul ax, ax, 0xf162
mov word [0x4170fe], ax
movzx eax, byte [0x4170fd]
movzx eax, al
xor eax, 0xba754040
mov dword [0x417100], eax
mov eax, dword [0x417100]
sub ax, 0x3552
mov word [0x4170fe], ax
movzx eax, word [0x4170fa]
imul ax, ax, 0xa310
mov word [0x4170f8], ax
movzx eax, word [0x4170f8]
imul ax, ax, 0xe531
mov word [0x4170f8], ax
add dword [ebp - 0xc], 1
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 4]
leave
ret