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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x4e8
mov esi, esp
mov dword [esi + 0x36c], 0x83777147
lea eax, [esi + 0x36c]
mov dword [esi], eax
mov eax, dword [esi + 0x36c]
mov ecx, eax
sub ecx, 0x805ae16e
je 0x4112f4
jmp 0x40f689
mov ecx, eax
sub ecx, 0x823c6b1c
je 0x41180f
jmp 0x40f699
mov ecx, eax
sub ecx, 0x82ea31f6
je 0x412f10
jmp 0x40f6a9
mov ecx, eax
sub ecx, 0x83777147
je 0x4103ab
jmp 0x40f6b9
mov ecx, eax
sub ecx, 0x84e5074f
je 0x412b98
jmp 0x40f6c9
mov ecx, eax
sub ecx, 0x883a3e7e
je 0x413e65
jmp 0x40f6d9
mov ecx, eax
sub ecx, 0x8968f2ac
je 0x4135a2
jmp 0x40f6e9
mov ecx, eax
sub ecx, 0x897b69bd
je 0x413a0e
jmp 0x40f6f9
mov ecx, eax
sub ecx, 0x8b9aab85
je 0x412b53
jmp 0x40f709
mov ecx, eax
sub ecx, 0x8e6083b1
je 0x410fba
jmp 0x40f719
mov ecx, eax
sub ecx, 0x8ff993c8
je 0x411a68
jmp 0x40f729
mov ecx, eax
sub ecx, 0x91e52611
je 0x411703
jmp 0x40f739
mov ecx, eax
sub ecx, 0x92f4ea78
je 0x413b43
jmp 0x40f749
mov ecx, eax
sub ecx, 0x938a6907
je 0x4119c2
jmp 0x40f759
mov ecx, eax
sub ecx, 0x93d5a344
je 0x410f03
jmp 0x40f769
mov ecx, eax
sub ecx, 0x94ca0cdc
je 0x4123a9
jmp 0x40f779
mov ecx, eax
sub ecx, 0x97ad334d
je 0x4147da
jmp 0x40f789
mov ecx, eax
sub ecx, 0x97b33faa
je 0x4115d5
jmp 0x40f799
mov ecx, eax
sub ecx, 0x997802f8
je 0x413a82
jmp 0x40f7a9
mov ecx, eax
sub ecx, 0x99901695
je 0x410aef
jmp 0x40f7b9
mov ecx, eax
sub ecx, 0x9c181360
je 0x41336e
jmp 0x40f7c9
mov ecx, eax
sub ecx, 0x9e34f7d9
je 0x414742
jmp 0x40f7d9
mov ecx, eax
sub ecx, 0x9f668420
je 0x412f03
jmp 0x40f7e9
mov ecx, eax
sub ecx, 0xa496123f
je 0x41449b
jmp 0x40f7f9
mov ecx, eax
sub ecx, 0xa4f5570c
je 0x4142bd
jmp 0x40f809
mov ecx, eax
sub ecx, 0xa7289cef
je 0x413edf
jmp 0x40f819
mov ecx, eax
sub ecx, 0xa73af946
je 0x412dfd
jmp 0x40f829
mov ecx, eax
sub ecx, 0xa8788f72
je 0x412626
jmp 0x40f839
mov ecx, eax
sub ecx, 0xa8b3f7e3
je 0x411c34
jmp 0x40f849
mov ecx, eax
sub ecx, 0xa8e7a73c
je 0x41477e
jmp 0x40f859
mov ecx, eax
sub ecx, 0xa95b26a1
je 0x414326
jmp 0x40f869
mov ecx, eax
sub ecx, 0xa9ea2484
je 0x412e32
jmp 0x40f879
mov ecx, eax
sub ecx, 0xaa859e71
je 0x4142f8
jmp 0x40f889
mov ecx, eax
sub ecx, 0xada1116d
je 0x412af7
jmp 0x40f899
mov ecx, eax
sub ecx, 0xae973456
je 0x412e25
jmp 0x40f8a9
mov ecx, eax
sub ecx, 0xaec0a4dd
je 0x4143b3
jmp 0x40f8b9
mov ecx, eax
sub ecx, 0xb010eade
je 0x411980
jmp 0x40f8c9
mov ecx, eax
sub ecx, 0xb3325e28
je 0x413589
jmp 0x40f8d9
mov ecx, eax
sub ecx, 0xb33fa06c
je 0x4146ca
jmp 0x40f8e9
mov ecx, eax
sub ecx, 0xb4ab46fa
je 0x4123b6
jmp 0x40f8f9
mov ecx, eax
sub ecx, 0xb511be27
je 0x412db5
jmp 0x40f909
mov ecx, eax
sub ecx, 0xb5b84ec2
je 0x411a4b
jmp 0x40f919
mov ecx, eax
sub ecx, 0xb6461333
je 0x413973
jmp 0x40f929
mov ecx, eax
sub ecx, 0xba3d94b0
je 0x4115f3
jmp 0x40f939
mov ecx, eax
sub ecx, 0xbc4d3817
je 0x4116a5
jmp 0x40f949
mov ecx, eax
sub ecx, 0xbc8bd475
je 0x41199a
jmp 0x40f959
mov ecx, eax
sub ecx, 0xbd0fe27e
je 0x412936
jmp 0x40f969
mov ecx, eax
sub ecx, 0xbd7d2146
je 0x4139bd
jmp 0x40f979
mov ecx, eax
sub ecx, 0xbe147f98
je 0x413f93
jmp 0x40f989
mov ecx, eax
sub ecx, 0xbf9d5957
je 0x4128fb
jmp 0x40f999
mov ecx, eax
sub ecx, 0xc10d4e40
je 0x413ae5
jmp 0x40f9a9
mov ecx, eax
sub ecx, 0xc1e2565e
je 0x413fb8
jmp 0x40f9b9
mov ecx, eax
sub ecx, 0xc300399f
je 0x41356f
jmp 0x40f9c9
mov ecx, eax
sub ecx, 0xc536f084
je 0x4103b8
jmp 0x40f9d9
mov ecx, eax
sub ecx, 0xc5610804
je 0x413b58
jmp 0x40f9e9
mov ecx, eax
sub ecx, 0xc68a213d
je 0x411b51
jmp 0x40f9f9
mov ecx, eax
sub ecx, 0xc7845d4e
je 0x411a2e
jmp 0x40fa09
mov ecx, eax
sub ecx, 0xc7c9f38d
je 0x4119f0
jmp 0x40fa19
mov ecx, eax
sub ecx, 0xc87b3551
je 0x410868
jmp 0x40fa29
mov ecx, eax
sub ecx, 0xca894810
je 0x41308e
jmp 0x40fa39
mov ecx, eax
sub ecx, 0xcdb62e2f
je 0x411e04
jmp 0x40fa49
mov ecx, eax
sub ecx, 0xcedae013
je 0x410b08
jmp 0x40fa59
mov ecx, eax
sub ecx, 0xcf0086e8
je 0x411a3e
jmp 0x40fa69
mov ecx, eax
sub ecx, 0xcf720be9
je 0x41401b
jmp 0x40fa79
mov ecx, eax
sub ecx, 0xd01d2146
je 0x414620
mov eax, dword [esi]
mov dword [eax], 0xc536f084
jmp 0x414839
call fcn.00419b80
sub esp, 8
mov edx, esp
push eax
mov ecx, esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x2a0], eax
push eax
mov eax, esp
mov dword [esi + 0x3ec], eax
push eax
mov eax, esp
mov dword [esi + 0xe0], eax
push eax
mov eax, esp
mov dword [esi + 0x3f0], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0xe4], eax
push eax
mov eax, esp
mov dword [esi + 0x3f4], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2a4], eax
push eax
mov eax, esp
mov dword [esi + 0x3f8], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2a8], eax
push eax
mov eax, esp
mov dword [esi + 0x3fc], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2ac], eax
push eax
mov eax, esp
mov dword [esi + 0x400], eax
push eax
mov eax, esp
mov dword [esi + 0x2b0], eax
push eax
mov eax, esp
mov dword [esi + 0x404], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x44], eax
push eax
mov eax, esp
mov dword [esi + 0x2b4], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0xe8], eax
push eax
mov eax, esp
mov dword [esi + 0x408], eax
push eax
mov eax, esp
mov dword [esi + 0x2b8], eax
push eax
mov eax, esp
mov dword [esi + 0x40c], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2bc], eax
push eax
mov eax, esp
mov dword [esi + 0x410], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0xec], eax
push eax
mov eax, esp
mov dword [esi + 0x414], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2c0], eax
push eax
mov eax, esp
mov dword [esi + 0x418], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2c4], eax
push eax
mov eax, esp
mov dword [esi + 0x41c], eax
push eax
mov eax, esp
mov dword [esi + 0xc], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2c8], eax
push eax
mov eax, esp
mov dword [esi + 0x420], eax
sub esp, 0x88
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x48], eax
push eax
push eax
mov eax, esp
mov dword [esi + 0xf0], eax
push eax
mov eax, esp
mov dword [esi + 0x424], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2cc], eax
push eax
mov eax, esp
mov dword [esi + 0x428], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2d0], eax
push eax
mov eax, esp
mov dword [esi + 0x42c], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0xf4], eax
push eax
mov eax, esp
mov dword [esi + 0x430], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2d4], eax
push eax
mov eax, esp
mov dword [esi + 0x434], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0xf8], eax
push eax
mov eax, esp
mov dword [esi + 0x438], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0xfc], eax
push eax
mov eax, esp
mov dword [esi + 0x43c], eax
push eax
mov eax, esp
mov dword [esi + 0x2d8], eax
push eax
mov eax, esp
mov dword [esi + 0x440], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2dc], eax
push eax
mov eax, esp
mov dword [esi + 0x444], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2e0], eax
push eax
mov eax, esp
mov dword [esi + 0x448], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2e4], eax
push eax
mov eax, esp
mov dword [esi + 0x44c], eax
push eax
mov eax, esp
mov dword [esi + 0x2e8], eax
push eax
mov eax, esp
mov dword [esi + 0x450], eax
sub esp, 0x10
mov eax, esp
mov dword [esi + 0x4c], eax
push eax
mov eax, esp
mov dword [esi + 0x28], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2ec], eax
push eax
mov eax, esp
mov dword [esi + 0x454], eax
sub esp, 0x88
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x2c], eax
push eax
mov eax, esp
mov dword [esi + 0x100], eax
push eax
mov eax, esp
mov dword [esi + 0x458], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2f0], eax
push eax
mov eax, esp
mov dword [esi + 0x45c], eax
push eax
mov eax, esp
mov dword [esi + 0x2f4], eax
push eax
mov eax, esp
mov dword [esi + 0x460], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2f8], eax
push eax
mov eax, esp
mov dword [esi + 0x464], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2fc], eax
push eax
mov eax, esp
mov dword [esi + 0x468], eax
push eax
mov eax, esp
mov dword [esi + 0x300], eax
push eax
mov eax, esp
mov dword [esi + 0x46c], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x304], eax
push eax
mov eax, esp
mov dword [esi + 0x470], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x308], eax
push eax
mov eax, esp
mov dword [esi + 0x474], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x30c], eax
push eax
mov eax, esp
mov dword [esi + 0x478], eax
sub esp, 0x10
mov eax, esp
mov dword [esi + 0x50], eax
sub esp, 0x88
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x70], eax
push eax
push eax
mov eax, esp
mov dword [esi + 0x74], eax
push eax
mov eax, esp
mov dword [esi + 0x47c], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x310], eax
push eax
mov eax, esp
mov dword [esi + 0x480], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x314], eax
push eax
mov eax, esp
mov dword [esi + 0x484], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x318], eax
push eax
mov eax, esp
mov dword [esi + 0x488], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x31c], eax
push eax
mov eax, esp
mov dword [esi + 0x48c], eax
sub esp, 0x88
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [esi + 0x78], eax
mov al, byte [ecx]
mov byte [esi + 0x174], al
mov byte [edx], 0x6f
mov dword [esi + 0x6c], edx
mov byte [edx + 1], 0xc9
mov eax, 2
mov ecx, dword [esi + 0x6c]
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 7
jne 0x410768
xor edi, edi
cmp edi, 7
jae 0x4107ed
mov eax, dword [esi + 0x6c]
movzx ecx, byte [eax + edi]
mov dword [esi + 0x394], ecx
mov edx, edi
add edx, 0xf929353e
mov eax, edx
shl eax, 1
and eax, 0x7c797764
xor edx, 0x3e3cbbb2
add edx, eax
add edx, 0x6d6cac2
mov ebx, edx
and ebx, ecx
mov ecx, ebx
and ecx, 0xfd
mov eax, ebx
and eax, 2
xor eax, 2
imul eax, ecx
mov ecx, ebx
and ecx, 2
or ebx, 2
imul ebx, ecx
add ebx, eax
add edx, dword [esi + 0x394]
sub edx, ebx
mov eax, edx
shl eax, 1
and eax, 0xa
xor edx, 0x7a
sub eax, edx
mov ecx, dword [esi + 0x6c]
mov byte [ecx + edi], al
add edi, 1
jmp 0x410779
sub esp, 8
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [esi + 0x6c]
mov dword [esp + 4], eax
call fcn.00401b10
add esp, 8
mov dword [esi + 0x104], eax
cmp dword [esi + 0x104], 0
sete al
and al, 1
mov byte [esi + 0x1c], al
mov eax, dword [esi]
mov dword [eax], 0xdab8f66a
jmp 0x414839
mov eax, dword [esi + 0x25c]
mov dword [esi + 0x108], eax
mov eax, dword [esi + 0x104]
sub esp, 4
mov dword [esp], eax
call fcn.00402060
add esp, 4
mov ecx, 0x77923e69
cmp dword [esi + 0x108], eax
jb 0x41089a
mov ecx, 0x515395f0
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x414839
mov eax, 0x64118fc2
cmp dword [esi + 0x54], 3
jl 0x410aff
mov eax, 0xcedae013
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414839
mov eax, 0x8ff993c8
cmp dword [esi + 0x54], 3
je 0x410b18
mov eax, 0x56201b2c
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0xef034425
jmp 0x414839
mov eax, 0x56201b2c
test byte [esi + 0x1d], 1
jne 0x410fca
mov eax, 0x268c5b4a
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414839
mov eax, dword [esi + 0xec]
mov ecx, dword [esi + 0x418]
mov eax, dword [esi + 0x2c0]
mov cl, byte [ecx]
mov byte [esi + 0x1ac], cl
mov byte [eax], 0xfa
mov byte [eax + 1], 0xea
mov byte [eax + 2], 0x66
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x41131e
mov eax, dword [esi + 0x2c0]
xor ecx, ecx
cmp ecx, 6
jae 0x41135f
movzx edi, byte [eax + ecx]
mov edx, ecx
add edx, 0xcd439319
xor edx, edi
mov edi, edx
shl edi, 1
and edi, 2
xor edx, 1
add edx, 0x82
add edx, edi
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x411332
mov ecx, dword [esi + 4]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.004019e0
add esp, 8
fnstcw word [esi + 0x5e]
movzx eax, word [esi + 0x5e]
or eax, 0xc00
mov word [esi + 0x246], ax
fldcw word [esi + 0x246]
fistp dword [esi + 0x3e0]
fldcw word [esi + 0x5e]
mov eax, dword [esi + 0x3e0]
mov dword [esi + 0x494], eax
mov ecx, dword [esi + 0x41c]
mov eax, dword [esi + 0x2c4]
mov cl, byte [ecx]
mov byte [esi + 0x1b0], cl
mov byte [eax], 0xaa
mov byte [eax + 1], 0xa3
mov byte [eax + 2], 0x4e
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x4113c6
mov edi, dword [esi + 0x2c4]
xor ecx, ecx
cmp ecx, 6
jae 0x411441
mov dword [esi + 0x250], edi
mov eax, dword [esi + 0x250]
movzx edi, byte [eax + ecx]
mov ebx, ecx
add ebx, 0x5f37bd0d
mov edx, 0x20c842f2
sub edx, ecx
and edx, 0xbb4aa3cb
and ebx, 0x44b55c34
or edx, ebx
mov ebx, edi
xor ebx, 0x34
mov eax, edx
or eax, ebx
xor eax, 0xffffffff
xor edi, 0x34
and edx, edi
mov edi, dword [esi + 0x250]
or edx, eax
add dl, 0xbf
mov byte [edi + ecx], dl
mov edx, ecx
and edx, 1
mov eax, ecx
and eax, 1
xor eax, 0xffffffff
add ecx, 2
add ecx, eax
add ecx, edx
jmp 0x4113da
mov eax, dword [esi + 4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00401c40
add esp, 8
cmp eax, 0
setg al
and al, 1
mov byte [esi + 0x1e], al
mov eax, dword [esi + 0x320]
sub esp, 4
mov dword [esp], eax
call fcn.00419730
add esp, 4
mov dword [esi + 0x7c], eax
mov edi, dword [esi + 0x7c]
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411496
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408c10
add esp, 4
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x320]
xor edx, edx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040b3e0
add esp, 0x10
mov eax, dword [0x44cfec]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x7c]
mov edi, dword [esi + 0xc]
xor ebx, ebx
sub esp, 0x18
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edi
call eax
mov dword [esi + 0x3b8], eax
mov ecx, dword [esi + 0x420]
mov eax, dword [esi + 0x2c8]
mov cl, byte [ecx]
mov byte [esi + 0x1b4], cl
mov byte [eax], 0x2f
mov byte [eax + 1], 9
mov byte [eax + 2], 0xe
mov byte [eax + 3], 0x4f
mov ecx, 4
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x411536
mov ecx, dword [esi + 0x2c8]
xor edx, edx
cmp edx, 6
jae 0x4115ab
mov al, byte [ecx + edx]
mov byte [esi + 0x18], al
mov ebx, edx
xor ebx, 0xe811db3d
mov edi, edx
or edi, 0x17ee24c2
and edi, ebx
mov ebx, edx
or ebx, 0x17ee24c2
add edi, ebx
mov eax, edi
xor eax, 0xffffffff
or eax, 0x7d
mov ebx, edi
add ebx, eax
add ebx, 1
and edi, 0x82
xor edi, 0x82
or ebx, edi
xor bl, byte [esi + 0x18]
xor bl, 0x82
add bl, 0x36
mov byte [ecx + edx], bl
mov eax, edx
and eax, 1
xor edx, 0xffffffff
or edx, 1
sub eax, edx
mov edx, eax
jmp 0x41154a
mov ecx, dword [ecx]
mov eax, 0x380056ec
cmp dword [esi + 0x3b8], ecx
jne 0x4115bf
mov eax, 0x23d74ba7
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414839
mov eax, dword [esi + 0x10]
sub esp, 4
mov dword [esp], eax
call fcn.00408c20
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xba3d94b0
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0xf9e5e524
jmp 0x414839
mov eax, 0x91e52611
test byte [esi + 0x1f], 1
jne 0x4116b5
mov eax, 0x7f00ce78
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x771e82c7
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x938a6907
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x3e8e1861
jmp 0x414839
mov eax, dword [esi + 0x114]
sub eax, 0xffffffff
mov dword [esi + 0x498], eax
mov eax, dword [esi]
mov dword [eax], 0xe2d66482
mov eax, dword [esi + 0x498]
mov dword [esi + 0x260], eax
jmp 0x414839
mov eax, dword [esi + 0x110]
sub esp, 4
mov dword [esp], eax
call fcn.00408c20
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xdbaef279
jmp 0x414839
mov eax, dword [esi + 0x10c]
sub esp, 4
mov dword [esp], eax
call fcn.00408c20
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x5bdd020f
jmp 0x414839
mov eax, dword [esi + 0x48]
mov eax, dword [esi]
mov dword [eax], 0xcf0086e8
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0xb5b84ec2
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0xf9e5e524
jmp 0x414839
mov eax, dword [esi + 0xf0]
mov ecx, dword [esi + 0x424]
mov eax, dword [esi + 0xf0]
mov cl, byte [ecx]
mov byte [esi + 0x1b8], cl
mov byte [eax], 0xc3
mov byte [eax + 1], 0x39
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 8
jne 0x411a8e
mov edx, dword [esi + 0xf0]
xor ecx, ecx
cmp ecx, 8
jae 0x411b21
mov al, byte [edx + ecx]
mov byte [esi + 0x1a], al
movzx eax, al
mov dword [esi + 0x3b4], edx
mov edx, ecx
add edx, 0x4dc6d2f6
mov edi, edx
and edi, eax
shl edi, 1
mov ebx, edx
sub ebx, edi
add ebx, eax
mov eax, 0xb2392d09
sub eax, ecx
or ebx, eax
mov eax, ebx
xor eax, 0xffffffff
mov edi, ebx
and edi, 2
and ebx, 0xfffffffd
xor ebx, 0xfffffffd
imul ebx, edi
mov edi, eax
and edi, 2
or eax, 2
imul eax, edi
add eax, ebx
mov ebx, eax
xor ebx, edx
mov edx, 9
sub edx, ecx
and eax, edx
mov edx, dword [esi + 0x3b4]
shl eax, 1
sub ebx, eax
add bl, byte [esi + 0x1a]
add bl, 0x32
mov byte [edx + ecx], bl
mov eax, ecx
shl eax, 1
and eax, 2
xor ecx, 1
add ecx, eax
jmp 0x411aa2
mov eax, dword [esi + 4]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 2
call fcn.00401f40
add esp, 0xc
mov dword [esi + 0x49c], eax
mov eax, dword [esi]
mov dword [eax], 0xc68a213d
jmp 0x414839
mov ecx, dword [esi + 0x49c]
mov eax, 0x3f45f395
cmp ecx, 0
jne 0x411b66
mov eax, 0xfbd56714
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414839
mov ecx, dword [esi + 0x42c]
mov eax, dword [esi + 0x2d0]
mov cl, byte [ecx]
mov byte [esi + 0x1c0], cl
mov byte [eax], 0xbd
mov byte [eax + 1], 0x21
mov ecx, 2
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 5
jne 0x411c54
mov eax, dword [esi + 0x2d0]
xor ecx, ecx
cmp ecx, 5
jae 0x411c82
mov dl, byte [eax + ecx]
mov dh, cl
add dh, 0x38
xor dh, dl
add dh, 0xe8
mov byte [eax + ecx], dh
add ecx, 1
jmp 0x411c68
mov ecx, dword [esi + 4]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 5
call fcn.00401f40
add esp, 0xc
mov ecx, 0x3a3d39b6
cmp eax, 0
jne 0x411cae
mov ecx, 0xfbd56714
mov eax, dword [esi]
mov dword [eax], ecx
jmp 0x414839
mov ecx, dword [esi + 0x438]
mov eax, dword [esi + 0xf8]
mov cl, byte [ecx]
mov byte [esi + 0x1cc], cl
mov byte [eax], 0x8e
mov byte [eax + 1], 0x9e
mov byte [eax + 2], 0x2a
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x411e28
mov eax, dword [esi + 0xf8]
mov dword [esi + 0xc0], eax
xor ecx, ecx
cmp ecx, 6
jae 0x411e9c
mov eax, dword [esi + 0xc0]
movzx ebx, byte [eax + ecx]
mov edx, ecx
shl edx, 1
and edx, 0x92827f0e
mov edi, ecx
xor edi, 0x49413f87
add edi, edx
mov edx, edi
or edx, ebx
mov eax, ebx
add eax, 1
xor ebx, 0xffffffff
or edi, ebx
add edi, eax
mov eax, edx
xor eax, edi
xor edi, 0xffffffff
and edx, edi
shl edx, 1
sub edx, eax
add dl, 0x5d
mov eax, dword [esi + 0xc0]
mov byte [eax + ecx], dl
mov eax, ecx
shl eax, 1
and eax, 2
xor ecx, 1
add ecx, eax
jmp 0x411e42
mov eax, dword [esi + 4]
sub esp, 0xc
mov dword [esp], eax
mov eax, dword [esi + 0xc0]
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401f40
add esp, 0xc
cmp eax, 0
setne cl
xor cl, 0xff
and cl, 1
or cl, 0
xor cl, 0
mov eax, 0x56201b2c
test cl, 1
jne 0x411ee0
mov eax, 0x57e9b51
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x44c8ecf7
jmp 0x414839
mov eax, dword [esi + 0x28]
mov eax, dword [esi + 0x28]
mov dword [eax], 0
mov eax, dword [esi + 0x4c]
mov eax, dword [eax]
mov dword [esi + 0x3c4], eax
mov eax, dword [esi + 0x28]
mov dword [esi + 0x3c0], eax
mov al, byte [esi + 0x1e8]
mov byte [esi + 0x240], al
mov byte [esi + 0x1ec], 0x25
mov byte [esi + 0x1ed], 0x2a
mov byte [esi + 0x1ee], 0x2b
mov byte [esi + 0x1ef], 0x28
mov eax, 4
mov byte [esi + eax + 0x1ec], 0
add eax, 1
cmp eax, 6
jne 0x412403
xor edx, edx
cmp edx, 6
jae 0x4124b0
movzx edi, byte [esi + edx + 0x1ec]
mov ecx, edi
and ecx, 0x32
xor ecx, 0x32
mov eax, edi
and eax, 0x32
xor eax, 0xbe5b1932
or ecx, eax
and edi, 0xcd
mov dword [esi + 0x37c], edi
mov ebx, 0x853dec88
sub ebx, edx
and ebx, 0xbe5b1932
mov edi, 0x53dec88
sub edi, edx
mov eax, edi
and eax, 0x41a4e6cd
or ecx, dword [esi + 0x37c]
or eax, ebx
and edi, 0x41a4e6cd
or edi, ebx
xor edi, 0x41a4e6cd
xor eax, 0x41a4e6cd
and edi, eax
xor ecx, edi
mov eax, 0x7f
sub eax, ecx
and eax, 0xd3
and ecx, 0x2c
sub ecx, eax
mov byte [esi + edx + 0x1ec], cl
add edx, 0xebf9f5e7
mov eax, edx
and eax, 0xa
or edx, 0x14060a1a
add edx, eax
jmp 0x412415
mov eax, dword [esi + 0x1ec]
mov dword [esi + 0xdc], eax
xor edi, edi
mov ecx, 2
cmp edi, dword [0x44cff0]
jb 0x4124d0
jmp 0x41255f
mov edx, dword [0x44cff4]
cmp dword [edx + edi*8], 0xfc36c0a1
sete bl
xor ecx, ecx
mov byte [esi + 0x19], bl
test bl, 1
jne 0x4124ec
jmp 0x41254f
mov edx, dword [edx + edi*8 + 4]
mov ecx, 2
cmp edx, dword [esi + 0xdc]
je 0x41254f
mov eax, dword [0x44cff8]
xor ecx, ecx
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x3c4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov eax, dword [esi + 0x3c0]
mov dword [esp + 0x1c], eax
call fcn.0043def0
add esp, 0x20
mov ecx, 1
test byte [esi + 0x19], 1
je 0x412557
jmp 0x41255f
add edi, 1
jmp 0x4124be
cmp ecx, 2
je 0x41256a
mov dword [esi + 0xdc], eax
mov ecx, dword [esi + 0x454]
mov eax, dword [esi + 0x2ec]
mov cl, byte [ecx]
mov byte [esi + 0x1f4], cl
mov byte [eax], 0x8c
mov byte [eax + 1], 0x91
mov byte [eax + 2], 0x92
mov byte [eax + 3], 0xd3
mov ecx, 4
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x412592
mov eax, dword [esi + 0x2ec]
xor ecx, ecx
cmp ecx, 6
jae 0x412609
movzx ebx, byte [eax + ecx]
mov edi, ecx
and edi, 0x9251f587
xor edi, 0x9251f587
mov edx, ecx
and edx, 0x6dae0a78
sub edx, edi
mov edi, 0x9c
sub edi, edx
mov dword [esi + 0x3ac], eax
mov eax, 0x9c
sub eax, edx
and edi, eax
add edx, 0x860ce263
or edx, ebx
xor ebx, 0xffffffff
or edi, ebx
and edx, edi
mov eax, edx
xor eax, 0x4d
shl edx, 1
and edx, 0x64
sub edx, eax
mov eax, dword [esi + 0x3ac]
add dl, 1
mov byte [eax + ecx], dl
add ecx, 1
jmp 0x4125a6
mov ecx, dword [eax]
mov eax, 0xa8788f72
cmp dword [esi + 0xdc], ecx
je 0x41261d
mov eax, 0x7fb68eb3
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414839
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
add eax, 0xb20591ac
add eax, 2
sub eax, 0xb20591ac
sub esp, 4
mov dword [esp], eax
call fcn.0043b840
add esp, 4
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
add eax, 2
mov dword [esi + 0x3d0], eax
mov eax, dword [esi + 0x4c]
mov eax, dword [eax]
mov dword [esi + 0x3cc], eax
mov eax, dword [esi + 0x80]
mov dword [esi + 0x3c8], eax
mov al, byte [esi + 0x1f8]
mov byte [esi + 0x23c], al
mov byte [esi + 0x1fc], 0x25
mov byte [esi + 0x1fd], 0x2a
mov byte [esi + 0x1fe], 0x2b
mov byte [esi + 0x1ff], 0x28
mov eax, 4
mov byte [esi + eax + 0x1fc], 0
add eax, 1
cmp eax, 6
jne 0x41269e
xor edx, edx
cmp edx, 6
jae 0x41274b
movzx edi, byte [esi + edx + 0x1fc]
mov ecx, edi
and ecx, 0x32
xor ecx, 0x32
mov eax, edi
and eax, 0x32
xor eax, 0xbe5b1932
or ecx, eax
and edi, 0xcd
mov dword [esi + 0x380], edi
mov ebx, 0x853dec88
sub ebx, edx
and ebx, 0xbe5b1932
mov edi, 0x53dec88
sub edi, edx
mov eax, edi
and eax, 0x41a4e6cd
or ecx, dword [esi + 0x380]
or eax, ebx
and edi, 0x41a4e6cd
or edi, ebx
xor edi, 0x41a4e6cd
xor eax, 0x41a4e6cd
and edi, eax
xor ecx, edi
mov eax, 0x7f
sub eax, ecx
and eax, 0xd3
and ecx, 0x2c
sub ecx, eax
mov byte [esi + edx + 0x1fc], cl
add edx, 0xebf9f5e7
mov eax, edx
and eax, 0xa
or edx, 0x14060a1a
add edx, eax
jmp 0x4126b0
mov edx, dword [esi + 0x1fc]
xor edi, edi
mov ecx, 2
cmp edi, dword [0x44cff0]
jb 0x412765
jmp 0x41280d
mov dword [esi + 0xd8], edx
mov edx, dword [0x44cff4]
cmp dword [edx + edi*8], 0xfc36c0a1
sete bl
xor ecx, ecx
test bl, 1
jne 0x412784
jmp 0x4127e9
mov edx, dword [edx + edi*8 + 4]
mov ecx, 2
cmp edx, dword [esi + 0xd8]
je 0x4127e9
mov eax, dword [0x44cff8]
xor ecx, ecx
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x3cc]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov eax, dword [esi + 0x3c8]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x3d0]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call fcn.0043def0
add esp, 0x20
mov ecx, 1
test bl, 1
je 0x4127f6
mov edx, dword [esi + 0xd8]
jmp 0x41280d
mov ecx, edi
xor ecx, 1
shl edi, 1
and edi, 2
add edi, ecx
mov edx, dword [esi + 0xd8]
jmp 0x412753
cmp ecx, 2
je 0x412814
mov edx, eax
mov eax, 0x7601b7c3
cmp edx, 0
jge 0x412823
mov eax, 0xe3ddfaa1
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414839
mov eax, dword [esi + 0x264]
mov dword [esi + 0x8c], eax
mov eax, dword [esi + 0x88]
mov ecx, dword [eax]
mov eax, 0xbd0fe27e
cmp dword [esi + 0x8c], ecx
jae 0x412921
mov eax, 0xfe19f16d
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x33c]
mov dword [esi + 0x268], eax
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x1ee78c6f
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x38da2d4b
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0xe2ebcc55
jmp 0x414839
mov eax, dword [esi + 0x334]
sub esp, 4
mov dword [esp], eax
call fcn.00419730
add esp, 4
mov edi, eax
sub edi, 0xffffffff
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412bc9
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408c10
add esp, 4
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x334]
xor edx, edx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040b3e0
add esp, 0x10
mov ecx, dword [esi + 0x2c]
sub esp, 4
mov dword [esp], 1
call fcn.004097b0
mov eax, dword [esi]
mov dword [eax], 0xd0ef020d
mov dword [esi + 0x26c], 0
jmp 0x414839
mov eax, dword [esi + 0x130]
sub esp, 4
mov dword [esp], eax
call fcn.00408c20
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xcaafe9
jmp 0x414839
mov eax, dword [esi + 0x128]
add eax, 1
mov dword [esi + 0x4b4], eax
mov eax, dword [esi]
mov dword [eax], 0xd0ef020d
mov eax, dword [esi + 0x4b4]
mov dword [esi + 0x26c], eax
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0xa9ea2484
jmp 0x414839
mov eax, dword [esi + 0x90]
sub esp, 4
mov dword [esp], eax
call fcn.00408c20
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xe401544f
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x82ea31f6
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x44c8ecf7
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0xc5610804
jmp 0x414839
mov eax, dword [esi + 0x14c]
sub esp, 4
mov dword [esp], eax
call fcn.00419730
add esp, 4
sub eax, 0xffffffff
mov dword [esi + 0x348], eax
mov eax, dword [esi + 0x348]
mov ecx, 2
mul ecx
seto cl
and cl, 1
mov byte [esi + 0x22], cl
mov dword [esi + 0x4b8], eax
mov eax, dword [esi]
mov dword [eax], 0x2169ef4a
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x73f1d7c8
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x8968f2ac
mov eax, dword [esi + 0x94]
mov dword [esi + 0x278], eax
jmp 0x414839
mov edi, dword [esi + 0x278]
mov ecx, edi
call fcn.00419890
add edi, 0xc
mov dword [esi + 0x350], edi
mov ecx, dword [esi + 0x350]
mov eax, 0xd42ee290
cmp ecx, dword [esi + 0x4bc]
je 0x4135d0
mov eax, 0x8968f2ac
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x350]
mov dword [esi + 0x278], eax
jmp 0x414839
mov eax, dword [esi + 0x38]
add eax, 0xfffffffc
mov dword [esi + 0x354], eax
mov eax, dword [esi + 0x354]
mov eax, dword [eax]
imul eax, eax, 0xc
add eax, dword [esi + 0x38]
mov dword [esi + 0x358], eax
mov ecx, dword [esi + 0x358]
mov eax, 0xe056dffe
cmp dword [esi + 0x38], ecx
je 0x4139a8
mov eax, 0xbd7d2146
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x358]
mov dword [esi + 0x288], eax
jmp 0x414839
mov eax, dword [esi + 0x288]
mov dword [esi + 0x35c], eax
mov eax, dword [esi]
mov dword [eax], 0x7401e98c
jmp 0x414839
mov eax, 0xe056dffe
test byte [esi + 0x23], 1
jne 0x413a1e
mov eax, 0xbd7d2146
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x158]
mov dword [esi + 0x288], eax
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x158caad5
jmp 0x414839
mov eax, dword [esi + 0x148]
sub esp, 4
mov dword [esp], eax
call fcn.00408c20
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0x47bdb0b
jmp 0x414839
mov ecx, dword [esi + 0x70]
call fcn.00409890
mov eax, dword [esi]
mov dword [eax], 0xc5610804
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x56201b2c
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x15692bbe
jmp 0x414839
mov eax, 0xc1e2565e
test byte [esi + 0x25], 1
jne 0x413eef
mov eax, 0xed5c9ed8
mov ecx, dword [esi]
mov dword [ecx], eax
jmp 0x414839
mov eax, 0xc1e2565e
test byte [esi + 0x26], 1
jne 0x413fa3
mov eax, 0xd48131de
mov ecx, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 0x360]
mov dword [esi + 0x28c], eax
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x57f46638
mov dword [esi + 0x290], 0
jmp 0x414839
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0xa0]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402070
add esp, 8
mov dword [esi + 0x254], eax
mov ecx, dword [esi + 0x488]
mov eax, dword [esi + 0x318]
mov cl, byte [ecx]
mov byte [esi + 0x234], cl
mov byte [eax], 0x65
mov byte [eax + 1], 0x6f
mov byte [eax + 2], 2
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 8
jne 0x414063
mov eax, dword [esi + 0x318]
xor edi, edi
cmp edi, 8
jae 0x4140a1
mov eax, dword [esi + 0x364]
sub esp, 4
mov dword [esp], eax
call fcn.00408c20
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xda965fc8
jmp 0x414839
mov eax, dword [esi + 0x9c]
sub esp, 4
mov dword [esp], eax
call fcn.00408c20
add esp, 4
mov eax, dword [esi]
mov dword [eax], 0xdfed2fd8
jmp 0x414839
mov eax, dword [esi]
mov dword [eax], 0x284a2235
jmp 0x414839
mov al, byte [esi + 0xa]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
clc
int1
xchg ebp, eax
push edx
out 0xed, al
out 0xaa, al
loopne 0x4144b9
hlt
add byte [esi - 0x5dfebf3a], ch
mov byte [eax + 2], 0x32
mov ecx, 3
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 7
jne 0x4144c8
mov eax, dword [esi + 0x44]
xor ecx, ecx
cmp ecx, 7
jae 0x41451a
movzx edi, byte [eax + ecx]
mov edx, ecx
add edx, 0x66a2434c
mov ebx, edx
and ebx, edi
shl ebx, 1
sub edx, ebx
add edx, edi
add edx, 0xf8a5d60f
mov edi, edx
shl edi, 1
and edi, 0xea
xor edx, 0x75
add edx, edi
mov byte [eax + ecx], dl
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
jmp 0x4144d9
mov ecx, dword [esi + 4]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401f40
add esp, 0xc
mov eax, dword [esi]
mov dword [eax], 0xef034425
jmp 0x414839
mov dl, 0x10
mov byte [0xc7068bc2], al
add byte [ebx], dh
pop esi
jb 0x414709
jmp 0x414839
dec eax
stosd dword es:[edi], eax
imul ecx, dword [ebx - 0x317d3b2], 0x8bffff5a
dec esi
sub al, 0xe8
je 0x41476b
invalid
mov eax, dword [esi]
mov dword [eax], 0x73f1d7c8
jmp 0x414839
hlt
retf
mov ch, 0xe5
pop edx
push 0xba75bedd
or al, 0x40
insd dword es:[edi], dx
out 0x8b, eax
push es
mov dword [eax], 0x690c7732
jmp 0x414839
jmp 0x40f673