Function at 0x40eaf0
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x730
mov esi, esp
mov al, byte [esi + 0x1fc]
mov byte [esi + 0x200], al
mov byte [esi + 0x74], 0x43
mov byte [esi + 0x75], 0xe1
mov eax, 2
mov byte [esi + eax + 0x74], 0
add eax, 1
cmp eax, 4
jne 0x40eb1a
xor eax, eax
cmp eax, 4
jae 0x40eb82
movzx ecx, byte [esi + eax + 0x74]
mov ebx, eax
add ebx, 0x18
mov edi, ecx
shl edi, 1
xor edi, 0xffffffff
add edi, ecx
mov edx, ecx
xor edx, 0xffffffff
and edi, edx
mov edx, 0x27
sub edx, eax
and edx, 0xea
and ebx, 0x15
or edx, ebx
xor edx, 0x15
or edx, edi
mov edi, 0x27
sub edi, eax
mov ebx, 0x27
sub ebx, eax
or edi, ebx
xor edi, 0xffffffff
or ecx, edi
and edx, ecx
add dl, 0xc8
mov byte [esi + eax + 0x74], dl
add eax, 1
jmp 0x40eb29
call fcn.00418930
call fcn.00418930
sub esp, 8
lea eax, [esi + 0x74]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401b20
add esp, 8
mov dword [esi + 0xb8], eax
push eax
mov ebx, esp
push eax
mov edi, esp
mov dword [ebx], 0x62ee5331
mov dword [edi], ebx
mov dword [esi + 8], ebx
mov dword [esi + 4], edi
mov eax, dword [ebx]
mov ecx, eax
sub ecx, 0x83c469ff
je 0x41099a
jmp 0x40ebd0
mov ecx, eax
sub ecx, 0x8734ffff
je 0x410b1a
jmp 0x40ebe0
mov ecx, eax
sub ecx, 0x8ab53d86
je 0x412bc2
jmp 0x40ebf0
mov ecx, eax
sub ecx, 0x8d1b8bf7
je 0x413602
jmp 0x40ec00
mov ecx, eax
sub ecx, 0x8d654178
je 0x413562
jmp 0x40ec10
mov ecx, eax
sub ecx, 0x92cd6ac5
je 0x410879
jmp 0x40ec20
mov ecx, eax
sub ecx, 0x9602cde0
je 0x4115fd
jmp 0x40ec30
mov ecx, eax
sub ecx, 0x9651e332
je 0x4113cf
jmp 0x40ec40
mov ecx, eax
sub ecx, 0x96bf0812
je 0x41351b
jmp 0x40ec50
mov ecx, eax
sub ecx, 0x976f6f2c
je 0x4134e7
jmp 0x40ec60
mov ecx, eax
sub ecx, 0x978b6339
je 0x410f40
jmp 0x40ec70
mov ecx, eax
sub ecx, 0x994112a8
je 0x411db3
jmp 0x40ec80
mov ecx, eax
sub ecx, 0x9a6d1cc0
je 0x413613
jmp 0x40ec90
mov ecx, eax
sub ecx, 0x9b78125d
je 0x410004
jmp 0x40eca0
mov ecx, eax
sub ecx, 0x9e8fad1a
je 0x4135f2
jmp 0x40ecb0
mov ecx, eax
sub ecx, 0xa1df1b15
je 0x40fa73
jmp 0x40ecc0
mov ecx, eax
sub ecx, 0xa237c7f0
je 0x4109e9
jmp 0x40ecd0
mov ecx, eax
sub ecx, 0xa46e7df2
je 0x4135b3
jmp 0x40ece0
mov ecx, eax
sub ecx, 0xa60c0072
je 0x41178c
jmp 0x40ecf0
mov ecx, eax
sub ecx, 0xa891c9ae
je 0x412e06
jmp 0x40ed00
mov ecx, eax
sub ecx, 0xa98aa460
je 0x412b60
jmp 0x40ed10
mov ecx, eax
sub ecx, 0xab5720d3
je 0x411d5b
jmp 0x40ed20
mov ecx, eax
sub ecx, 0xacaa8367
je 0x411920
jmp 0x40ed30
mov ecx, eax
sub ecx, 0xb23c79f4
je 0x4106ee
jmp 0x40ed40
mov ecx, eax
sub ecx, 0xb37cece4
je 0x41398b
jmp 0x40ed50
mov ecx, eax
sub ecx, 0xb39ba26b
je 0x4135c0
jmp 0x40ed60
mov ecx, eax
sub ecx, 0xb5ea2e0f
je 0x40fa9f
jmp 0x40ed70
mov ecx, eax
sub ecx, 0xb801b300
je 0x410f33
jmp 0x40ed80
mov ecx, eax
sub ecx, 0xb9f2db80
je 0x40faf6
jmp 0x40ed90
mov ecx, eax
sub ecx, 0xbb346e0a
je 0x411dc0
jmp 0x40eda0
mov ecx, eax
sub ecx, 0xbd0c671e
je 0x40f974
jmp 0x40edb0
mov ecx, eax
sub ecx, 0xbe2997fb
je 0x411395
jmp 0x40edc0
mov ecx, eax
sub ecx, 0xbf7ffefe
je 0x412576
jmp 0x40edd0
mov ecx, eax
sub ecx, 0xbfe4af52
je 0x412d1e
jmp 0x40ede0
mov ecx, eax
sub ecx, 0xc022c50b
je 0x412383
jmp 0x40edf0
mov ecx, eax
sub ecx, 0xc1407e0a
je 0x4131b5
jmp 0x40ee00
mov ecx, eax
sub ecx, 0xc5944b31
je 0x40ffcb
jmp 0x40ee10
mov ecx, eax
sub ecx, 0xc5c22d8a
je 0x410b27
jmp 0x40ee20
mov ecx, eax
sub ecx, 0xc60253d1
je 0x41358d
jmp 0x40ee30
mov ecx, eax
sub ecx, 0xc75be721
je 0x411e23
jmp 0x40ee40
mov ecx, eax
sub ecx, 0xc79adfaf
je 0x4119c6
jmp 0x40ee50
mov ecx, eax
sub ecx, 0xc94205b6
je 0x410987
jmp 0x40ee60
mov ecx, eax
sub ecx, 0xca50d1c7
je 0x410840
jmp 0x40ee70
mov ecx, eax
sub ecx, 0xcb0e568e
je 0x412b00
jmp 0x40ee80
mov ecx, eax
sub ecx, 0xcdf77cdd
je 0x4134f4
jmp 0x40ee90
mov ecx, eax
sub ecx, 0xce944242
je 0x410650
jmp 0x40eea0
mov ecx, eax
sub ecx, 0xcea303fd
je 0x4125b9
jmp 0x40eeb0
mov ecx, eax
sub ecx, 0xcec9836b
je 0x4113fc
jmp 0x40eec0
mov ecx, eax
sub ecx, 0xd0d81781
je 0x413140
jmp 0x40eed0
mov ecx, eax
sub ecx, 0xd1f09342
je 0x411d48
jmp 0x40eee0
mov ecx, eax
sub ecx, 0xd1fe02f8
je 0x411b31
jmp 0x40eef0
mov ecx, eax
sub ecx, 0xd31d2729
je 0x412fd4
jmp 0x40ef00
mov ecx, eax
sub ecx, 0xd378f92f
je 0x40fa4d
jmp 0x40ef10
mov ecx, eax
sub ecx, 0xd43154fc
je 0x41306f
jmp 0x40ef20
mov ecx, eax
sub ecx, 0xd5f113d1
je 0x4138f5
jmp 0x40ef30
mov ecx, eax
sub ecx, 0xd75171b4
je 0x40f987
jmp 0x40ef40
mov ecx, eax
sub ecx, 0xdb8e7350
je 0x411e4a
jmp 0x40ef50
mov ecx, eax
sub ecx, 0xdc160b3a
je 0x410b46
jmp 0x40ef60
mov ecx, eax
sub ecx, 0xdd28b314
je 0x4135a0
jmp 0x40ef70
mov ecx, eax
sub ecx, 0xdd6fa0fc
je 0x4139a0
jmp 0x40ef80
mov ecx, eax
sub ecx, 0xdd9a29ad
je 0x40f886
jmp 0x40ef90
mov ecx, eax
sub ecx, 0xddf2bda4
je 0x413446
jmp 0x40efa0
mov ecx, eax
sub ecx, 0xe128ef1c
je 0x412c05
jmp 0x40efb0
mov ecx, eax
sub ecx, 0xe1c1e02b
je 0x410a59
mov eax, dword [esi + 0xbc]
mov ecx, dword [esi + 0xb8]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402080
add esp, 8
mov dword [esi + 0xc], eax
mov al, byte [esi + 0x1f8]
mov byte [esi + 0x204], al
mov byte [esi + 0x44c], 0x18
mov byte [esi + 0x44d], 0x8f
mov eax, 2
mov byte [esi + eax + 0x44c], 0
add eax, 1
cmp eax, 8
jne 0x40f8c6
xor eax, eax
cmp eax, 8
jae 0x40f924
movzx edx, byte [esi + eax + 0x44c]
mov ecx, eax
add ecx, 0x33e9055d
mov edi, 0xa2
sub edi, eax
mov ebx, 0xa2
sub ebx, eax
and edi, ebx
or ecx, edx
xor edx, 0xffffffff
or edi, edx
and ecx, edi
mov edx, ecx
xor edx, 0x2d
add edx, 1
shl ecx, 1
and ecx, 0x5a
or ecx, 1
add edx, ecx
mov byte [esi + eax + 0x44c], dl
add eax, 1
jmp 0x40f8d8
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x44c]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401f50
add esp, 0xc
cmp eax, 0
setne cl
xor cl, 0xff
and cl, 1
or cl, 0
mov eax, 0xbd0c671e
test cl, 1
jne 0x40f965
mov eax, 0xd75171b4
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xb39ba26b
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov al, byte [esi + 0x1f4]
mov byte [esi + 0x208], al
mov byte [esi + 0x70], 0xa0
mov byte [esi + 0x71], 0x3b
mov eax, 2
mov byte [esi + eax + 0x70], 0
add eax, 1
cmp eax, 4
jne 0x40f9a0
xor eax, eax
cmp eax, 4
jae 0x40f9ee
movzx edx, byte [esi + eax + 0x70]
mov ecx, eax
add ecx, 0x2b62e24b
xor ecx, edx
mov edi, ecx
shl edi, 1
and edi, 0x10
mov ebx, ecx
shl ebx, 1
and ebx, 0x10
mov edx, ecx
add edx, 0x88
sub edx, ebx
add edx, edi
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esi + eax + 0x70], dl
add eax, 1
jmp 0x40f9af
mov eax, dword [esi + 0xc]
sub esp, 8
lea ecx, [esi + 0x70]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004019f0
add esp, 8
fnstcw word [esi + 0x82]
movzx eax, word [esi + 0x82]
or eax, 0xc00
mov word [esi + 0x2de], ax
fldcw word [esi + 0x2de]
fistp dword [esi + 0x498]
fldcw word [esi + 0x82]
mov eax, dword [esi + 0x498]
mov dword [esi + 0x50], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xd378f92f
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xfc733de
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [edi]
mov dword [eax], 0x1c47bb25
jmp 0x4139c1
mov eax, 0x41811a07
cmp dword [esi + 0x50], 3
jl 0x40faaf
mov eax, 0x12889a2c
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x4139c1
mov eax, 0x42156417
cmp dword [esi + 0x50], 0
je 0x40fb06
mov eax, 0xa46e7df2
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x4e5c0da3
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov al, byte [esi + 0x1dc]
mov byte [esi + 0x228], al
mov byte [esi + 0x42c], 0x60
mov byte [esi + 0x42d], 0x91
mov eax, 2
mov byte [esi + eax + 0x42c], 0
add eax, 1
cmp eax, 8
jne 0x410023
xor eax, eax
cmp eax, 8
jae 0x410070
movzx edx, byte [esi + eax + 0x42c]
mov ecx, eax
add ecx, 0xdc
or ecx, edx
mov edi, eax
add edi, 0xdc
and edi, edx
sub ecx, edi
add cl, 0xb4
mov byte [esi + eax + 0x42c], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x410035
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x42c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018c0
add esp, 8
mov dword [esi + 0x334], eax
mov al, byte [esi + 0x1d8]
mov byte [esi + 0x22c], al
mov byte [esi + 0x424], 0xb3
mov byte [esi + 0x425], 0x27
mov eax, 2
mov byte [esi + eax + 0x424], 0
add eax, 1
cmp eax, 5
jne 0x4100b0
xor eax, eax
cmp eax, 5
jae 0x41010e
movzx edx, byte [esi + eax + 0x424]
mov ecx, eax
xor ecx, 0x952f7c6
mov edi, eax
or edi, 0x76ad0839
and edi, ecx
shl edi, 1
mov ecx, eax
xor ecx, 0x76ad0839
add ecx, edi
xor ecx, edx
mov edi, ecx
xor edi, 0x1d
mov edx, ecx
or edx, 0x62
and edx, edi
shl edx, 1
xor ecx, 0x1d
sub edx, ecx
mov byte [esi + eax + 0x424], dl
add eax, 1
jmp 0x4100c2
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x424]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401b20
add esp, 8
mov dword [esi + 0x37c], eax
mov al, byte [esi + 0x1d4]
mov byte [esi + 0x230], al
mov byte [esi + 0x41c], 0xb6
mov byte [esi + 0x41d], 0x4f
mov eax, 2
mov byte [esi + eax + 0x41c], 0
add eax, 1
cmp eax, 8
jne 0x41014e
xor eax, eax
cmp eax, 8
jae 0x41019c
mov cl, byte [esi + eax + 0x41c]
movzx edi, cl
mov ebx, eax
shl ebx, 1
and ebx, 0x86445a1a
mov edx, eax
xor edx, 0xc3222d0d
add edx, ebx
mov ebx, edx
and ebx, edi
shl ebx, 1
sub edx, ebx
add dl, cl
add dl, 0xbf
mov byte [esi + eax + 0x41c], dl
add eax, 1
jmp 0x410160
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x41c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018c0
add esp, 8
mov dword [esi + 0x380], eax
mov al, byte [esi + 0x1d0]
mov byte [esi + 0x234], al
mov byte [esi + 0x414], 0xac
mov byte [esi + 0x415], 0x31
mov eax, 2
mov byte [esi + eax + 0x414], 0
add eax, 1
cmp eax, 8
jne 0x4101dc
xor eax, eax
mov ebx, dword [esi + 8]
cmp eax, 8
jae 0x410244
movzx edx, byte [esi + eax + 0x414]
mov edi, eax
and edi, 0xdc215774
xor edi, 0xdc215774
mov ecx, eax
and ecx, 0x23dea88b
sub ecx, edi
xor ecx, edx
mov edx, ecx
and edx, 0x43
mov edi, ecx
and edi, 0x43
xor edi, 0xffffffff
add ecx, 0x44
add ecx, edi
add ecx, edx
add cl, 1
mov byte [esi + eax + 0x414], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4101f1
mov eax, dword [esi + 0xc]
sub esp, 8
lea ecx, [esi + 0x414]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004019f0
add esp, 8
fnstcw word [esi + 0x80]
movzx eax, word [esi + 0x80]
or eax, 0xc00
mov word [esi + 0x2dc], ax
fldcw word [esi + 0x2dc]
fistp dword [esi + 0x4a0]
fldcw word [esi + 0x80]
mov eax, dword [esi + 0x4a0]
mov dword [esi + 0x4ac], eax
mov al, byte [esi + 0x1cc]
mov byte [esi + 0x238], al
mov byte [esi + 0x48], 0x92
mov byte [esi + 0x49], 0xae
mov byte [esi + 0x4a], 0x3e
mov eax, 3
mov byte [esi + eax + 0x48], 0
add eax, 1
cmp eax, 4
jne 0x4102b3
xor eax, eax
cmp eax, 4
jae 0x4102fd
movzx edx, byte [esi + eax + 0x48]
mov ecx, eax
add ecx, 0x3f02d44a
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x8e
mov byte [esi + eax + 0x48], cl
add eax, 0xe2350449
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
add eax, 0x1dcafbb7
jmp 0x4102c2
mov eax, dword [esi + 0xc]
sub esp, 8
lea ecx, [esi + 0x48]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004019f0
add esp, 8
fnstcw word [esi + 0x7e]
movzx eax, word [esi + 0x7e]
or eax, 0xc00
mov word [esi + 0x2da], ax
fldcw word [esi + 0x2da]
fistp dword [esi + 0x49c]
fldcw word [esi + 0x7e]
mov eax, dword [esi + 0x49c]
mov dword [esi + 0x4b0], eax
mov al, byte [esi + 0x1c8]
mov byte [esi + 0x23c], al
mov byte [esi + 0x318], 0x3e
mov byte [esi + 0x319], 5
mov byte [esi + 0x31a], 0x92
mov eax, 3
mov byte [esi + eax + 0x318], 0
add eax, 1
cmp eax, 7
jne 0x410369
xor eax, eax
cmp eax, 7
jae 0x4103c1
movzx edi, byte [esi + eax + 0x318]
mov edx, eax
add edx, 0x64
mov ecx, 0x9b
sub ecx, eax
mov ebx, 0x9b
sub ebx, eax
and ecx, ebx
mov ebx, dword [esi + 8]
or edx, edi
xor edi, 0xffffffff
or ecx, edi
and ecx, edx
add cl, 0xc
mov byte [esi + eax + 0x318], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x41037b
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x318]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401c50
add esp, 8
cmp eax, 0
setg al
and al, 1
mov byte [esi + 0x21], al
sub esp, 4
mov eax, dword [esi + 0x334]
mov dword [esp], eax
call fcn.004184f0
add esp, 4
mov dword [esi + 0xc0], eax
mov eax, dword [esi + 0xc0]
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor edi, edi
sub edi, ecx
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41042a
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004086e0
add esp, 4
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x28]
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esi + 0x334]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040afb0
add esp, 0x10
mov eax, dword [0x44cd18]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0xc0]
xor edi, edi
lea edi, [esi + 0x1c4]
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 cl, byte [esi + 0x1b8]
mov byte [esi + 0x240], cl
mov byte [esi + 0x1bc], 0x2f
mov byte [esi + 0x1bd], 9
mov byte [esi + 0x1be], 0xe
mov byte [esi + 0x1bf], 0x4f
mov ecx, 4
mov byte [esi + ecx + 0x1bc], 0
add ecx, 1
cmp ecx, 8
jne 0x4104cf
xor ecx, ecx
cmp ecx, 8
jae 0x410513
mov dl, byte [esi + ecx + 0x1bc]
mov dh, cl
add dh, 0xc2
xor dh, dl
add dh, 0x36
mov byte [esi + ecx + 0x1bc], dh
mov edx, ecx
add edx, 3
xor edi, edi
sub edi, ecx
and edi, 2
and edx, 0xd
sub edx, edi
mov ecx, edx
jmp 0x4104e1
mov edx, dword [esi + 0x1bc]
mov ecx, 0x3da0c87c
cmp eax, edx
mov edi, dword [esi + 4]
jne 0x41052a
mov ecx, 0x46cef64f
mov eax, dword [edi]
mov dword [eax], ecx
jmp 0x4139c1
mov eax, dword [esi + 0x28]
sub esp, 4
mov dword [esp], eax
call fcn.004086f0
add esp, 4
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x30f18f4f
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0x384]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41070a
mov ecx, eax
mov dword [esi + 0x4b4], ecx
mov eax, dword [edi]
mov dword [eax], 0x404b7598
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xe2c46b19
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0xd0]
sub esp, 4
mov dword [esp], eax
call fcn.004184f0
add esp, 4
mov edi, eax
add edi, 0x241db967
add edi, 1
sub edi, 0x241db967
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4108b6
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004086e0
add esp, 4
mov dword [esi + 0xd4], eax
mov eax, dword [esi + 0xd4]
mov ecx, dword [esi + 0xd0]
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.0040afb0
add esp, 0x10
mov ecx, dword [esi + 0xd4]
mov eax, dword [esi + 0xc8]
mov edx, dword [esi + 0xc4]
mov bl, byte [esi + 0x21]
mov byte [esi + 0x1d], bl
mov edi, dword [esi + 0x4b0]
mov ebx, dword [esi + 0x4ac]
sub esp, 0x1c
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea eax, [esi + 0x6a0]
mov dword [esp], eax
movzx eax, byte [esi + 0x1d]
and eax, 1
mov dword [esp + 0x18], eax
call fcn.004229d0
add esp, 0x1c
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xfd1694dc
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x83c469ff
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0xcc]
add eax, 1
mov dword [esi + 0x4b8], eax
mov eax, dword [edi]
mov dword [eax], 0x233b8d19
mov eax, dword [esi + 0x4b8]
mov dword [esi + 0x33c], eax
jmp 0x4139c1
mov eax, dword [edi]
mov dword [eax], 0x4e257b71
jmp 0x4139c1
mov eax, dword [edi]
mov dword [eax], 0xc5c22d8a
jmp 0x4139c1
mov eax, 0xdc160b3a
test byte [esi + 0x22], 1
jne 0x410b37
mov eax, 0xb801b300
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x28f96569
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [edi]
mov dword [eax], 0xa46e7df2
jmp 0x4139c1
mov al, byte [esi + 0x1a4]
mov byte [esi + 0x264], al
mov byte [esi + 0x3f4], 0xa7
mov byte [esi + 0x3f5], 0xc1
mov eax, 2
mov byte [esi + eax + 0x3f4], 0
add eax, 1
cmp eax, 6
jne 0x410f5f
xor edx, edx
cmp edx, 6
jae 0x410fcf
movzx eax, byte [esi + edx + 0x3f4]
mov dword [esi + 0x464], eax
mov ecx, edx
add ecx, 0xdb40b7d0
mov edi, 0x2f
sub edi, edx
mov ebx, 0x2f
sub ebx, edx
or edi, ebx
mov eax, 0x2f
sub eax, edx
and eax, edi
xor eax, 0xffffffff
mov edi, dword [esi + 0x464]
mov ebx, edi
and ebx, eax
or ecx, edi
mov eax, ecx
shl eax, 1
xor eax, 0xffffffff
add ecx, eax
or ebx, ecx
mov al, 0xef
sub al, bl
mov byte [esi + edx + 0x3f4], al
add edx, 1
jmp 0x410f71
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x3f4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018c0
add esp, 8
mov dword [esi + 0x330], eax
mov al, byte [esi + 0x1a0]
mov byte [esi + 0x268], al
mov byte [esi + 0x3ec], 0x50
mov byte [esi + 0x3ed], 0xc1
mov eax, 2
mov byte [esi + eax + 0x3ec], 0
add eax, 1
cmp eax, 5
jne 0x41100f
xor eax, eax
cmp eax, 5
jae 0x411043
mov cl, byte [esi + eax + 0x3ec]
mov dl, al
add dl, 0x50
xor dl, cl
add dl, 0x70
mov byte [esi + eax + 0x3ec], dl
add eax, 1
jmp 0x411021
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x3ec]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018c0
add esp, 8
mov dword [esi + 0x388], eax
mov al, byte [esi + 0x19c]
mov byte [esi + 0x26c], al
mov byte [esi + 0x58], 0x7d
mov byte [esi + 0x59], 0xe1
mov eax, 2
mov byte [esi + eax + 0x58], 0
add eax, 1
cmp eax, 4
jne 0x41107d
xor eax, eax
cmp eax, 4
jae 0x4110d3
movzx edx, byte [esi + eax + 0x58]
mov ecx, eax
add ecx, 0x133262d8
xor ecx, edx
mov ebx, ecx
shl ebx, 1
and ebx, 0x8e
mov edx, ecx
xor edx, 0xa00411c7
mov edi, edx
add edi, ebx
shl edx, 1
and edx, 2
shl ecx, 1
and ecx, 2
xor ecx, 2
xor edi, 0xffffffff
add ecx, edi
sub edx, ecx
mov byte [esi + eax + 0x58], dl
add eax, 1
jmp 0x41108c
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x58]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401b20
add esp, 8
mov dword [esi + 0xd8], eax
mov al, byte [esi + 0x198]
mov byte [esi + 0x270], al
mov byte [esi + 0x3e4], 0x9a
mov byte [esi + 0x3e5], 0x1b
mov eax, 2
mov byte [esi + eax + 0x3e4], 0
add eax, 1
cmp eax, 8
jne 0x411110
xor eax, eax
cmp eax, 8
jae 0x411177
mov cl, byte [esi + eax + 0x3e4]
mov edx, eax
and edx, 0xb9
mov ebx, eax
and ebx, 0xb9
mov edi, eax
and edi, 2
xor edi, 2
imul edi, ebx
mov ebx, eax
and ebx, 2
or edx, 2
imul edx, ebx
add edx, edi
mov edi, eax
shl edi, 1
and edi, 0x76
add edi, 0x45
mov ebx, eax
sub ebx, edi
add ebx, edx
xor bl, cl
add bl, 0x59
mov byte [esi + eax + 0x3e4], bl
add eax, 1
jmp 0x411122
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x3e4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018c0
add esp, 8
mov dword [esi + 0x38c], eax
mov al, byte [esi + 0x194]
mov byte [esi + 0x274], al
mov byte [esi + 0x54], 0xec
mov byte [esi + 0x55], 0x71
mov eax, 2
mov byte [esi + eax + 0x54], 0
add eax, 1
cmp eax, 4
jne 0x4111b1
xor eax, eax
cmp eax, 4
jae 0x4111f3
movzx edi, byte [esi + eax + 0x54]
mov ecx, eax
add ecx, 0x9e1a3bec
mov edx, 0x13
sub edx, eax
and edx, edi
mov ebx, ecx
xor ebx, edi
add ebx, edi
and ecx, edi
add edx, ecx
sub ebx, edx
add bl, 0x64
mov byte [esi + eax + 0x54], bl
add eax, 1
jmp 0x4111c0
mov eax, dword [esi + 0xc]
sub esp, 8
lea ecx, [esi + 0x54]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004019f0
add esp, 8
fnstcw word [esi + 0x7c]
movzx eax, word [esi + 0x7c]
or eax, 0xc00
mov word [esi + 0x2d8], ax
fldcw word [esi + 0x2d8]
fistp dword [esi + 0x4a8]
fldcw word [esi + 0x7c]
mov eax, dword [esi + 0x4a8]
mov dword [esi + 0x4bc], eax
mov al, byte [esi + 0x190]
mov byte [esi + 0x278], al
mov byte [esi + 0x310], 0xaa
mov byte [esi + 0x311], 0x9a
mov byte [esi + 0x312], 0xe
mov eax, 3
mov ebx, dword [esi + 8]
mov byte [esi + eax + 0x310], 0
add eax, 1
cmp eax, 5
jne 0x411262
xor eax, eax
cmp eax, 5
jae 0x4112ae
movzx edx, byte [esi + eax + 0x310]
mov ecx, eax
add ecx, 0xa9604cbd
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
mov edx, ecx
sub edx, edi
shl ecx, 1
and ecx, 2
xor edx, 1
add edx, 0x4e
add edx, ecx
mov byte [esi + eax + 0x310], dl
add eax, 1
jmp 0x411274
mov eax, dword [esi + 0xc]
sub esp, 8
lea ecx, [esi + 0x310]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004019f0
add esp, 8
fnstcw word [esi + 0x7a]
movzx eax, word [esi + 0x7a]
or eax, 0xc00
mov word [esi + 0x2d6], ax
fldcw word [esi + 0x2d6]
fistp dword [esi + 0x4a4]
fldcw word [esi + 0x7a]
mov eax, dword [esi + 0x4a4]
mov dword [esi + 0x4c0], eax
sub esp, 4
mov eax, dword [esi + 0x330]
mov dword [esp], eax
call fcn.004184f0
add esp, 4
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor edi, edi
sub edi, ecx
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41132e
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004086e0
add esp, 4
mov dword [esi + 0xdc], eax
mov eax, dword [esi + 0xdc]
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esi + 0x330]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040afb0
add esp, 0x10
mov eax, dword [esi + 0xdc]
lea ecx, [esi + 0x4f8]
sub esp, 4
mov dword [esp], eax
call fcn.00418550
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xbe2997fb
jmp 0x4139c1
mov eax, dword [esi + 0xdc]
sub esp, 4
mov dword [esp], eax
call fcn.004086f0
add esp, 4
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x5f7e121e
mov ebx, dword [esi + 8]
jmp 0x4139c1
lea ecx, [esi + 0x4f8]
sub esp, 4
mov dword [esp], 0x1000
call fcn.0043bdd0
mov ecx, 0x6fc7721f
cmp eax, 0
jge 0x4113f3
mov ecx, 0xcec9836b
mov eax, dword [edi]
mov dword [eax], ecx
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x4b27dad7
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0x18c]
mov ecx, eax
and ecx, 2
or eax, 2
add ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.0043ba10
add esp, 4
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x18c]
sub eax, 0xfffffffe
mov dword [esi + 0x48c], eax
mov eax, dword [esi + 0x4f8]
mov dword [esi + 0x488], eax
mov eax, dword [esi + 0x88]
mov dword [esi + 0x484], eax
mov al, byte [esi + 0x28c]
mov byte [esi + 0x2d0], al
mov byte [esi + 0x290], 0x97
mov byte [esi + 0x291], 0x96
mov byte [esi + 0x292], 0x95
mov byte [esi + 0x293], 0x94
mov eax, 4
mov byte [esi + eax + 0x290], 0
add eax, 1
cmp eax, 8
jne 0x411675
xor eax, eax
cmp eax, 8
jae 0x4116a9
mov cl, byte [esi + eax + 0x290]
mov dl, al
add dl, 0xa4
xor dl, cl
add dl, 0xcc
mov byte [esi + eax + 0x290], dl
add eax, 1
jmp 0x411687
mov edx, dword [esi + 0x290]
xor edi, edi
mov ecx, 2
cmp edi, dword [0x44cd1c]
jb 0x4116c3
jmp 0x41176a
mov dword [esi + 0xb0], edx
mov ecx, dword [0x44cd20]
cmp dword [ecx + edi*8], 0xfc36c0a1
sete bl
test bl, 1
jne 0x4116e0
jmp 0x411747
mov edx, dword [ecx + edi*8 + 4]
mov ecx, 2
cmp edx, dword [esi + 0xb0]
je 0x411749
mov eax, dword [0x44cd24]
xor ecx, ecx
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x488]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov eax, dword [esi + 0x484]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x48c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call fcn.0043e470
add esp, 0x20
mov ecx, 1
jmp 0x411749
xor ecx, ecx
test bl, 1
je 0x411759
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0xb0]
jmp 0x41176a
add edi, 1
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0xb0]
jmp 0x4116b1
cmp ecx, 2
mov edi, dword [esi + 4]
je 0x411774
mov edx, eax
mov eax, 0xa60c0072
cmp edx, 0
jge 0x411783
mov eax, 0xc75be721
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x4139c1
mov eax, dword [esi + 0x388]
sub esp, 4
mov dword [esp], eax
call fcn.004184f0
add esp, 4
mov dword [esi + 0xe0], eax
mov edi, dword [esi + 0xe0]
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4117c7
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004086e0
add esp, 4
mov dword [esi + 0x8c], eax
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x388]
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.0040afb0
add esp, 0x10
mov eax, dword [esi + 0x88]
add eax, 4
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x88]
movzx ecx, word [ecx]
shr ecx, 1
add ecx, 0xfffffffe
add ecx, 1
shl ecx, 1
add eax, ecx
mov dword [esi + 0x390], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x74f51c3d
mov eax, dword [esi + 0x390]
mov dword [esi + 0x340], eax
jmp 0x4139c1
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov edi, dword [esi + 0x394]
sub edi, eax
sar edi, 1
mov eax, edi
add eax, dword [esi + 0xe0]
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411950
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004086e0
add esp, 4
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x94]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00418580
add esp, 0xc
mov ecx, dword [esi + 0x8c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a2b0
add esp, 8
mov dword [esi + 0x4c8], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x8f715fa
jmp 0x4139c1
mov eax, dword [esi + 0x8c]
sub esp, 4
mov dword [esp], eax
call fcn.004086f0
add esp, 4
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x77a3e07c
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0x348]
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0xd8]
sub esp, 4
mov dword [esp], eax
call fcn.00402070
add esp, 4
mov ecx, 0xf97a3aad
cmp dword [esi + 0x98], eax
jb 0x411b63
mov ecx, 0x430fdb29
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], ecx
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xab5720d3
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0x98]
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov dword [esi + 0x4cc], eax
mov eax, dword [edi]
mov dword [eax], 0xd1fe02f8
mov eax, dword [esi + 0x4cc]
mov dword [esi + 0x348], eax
jmp 0x4139c1
mov eax, dword [edi]
mov dword [eax], 0xbb346e0a
jmp 0x4139c1
mov eax, dword [esi + 0xe4]
sub esp, 4
mov dword [esp], eax
call fcn.004086f0
add esp, 4
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xe581a743
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0x88]
sub esp, 4
mov dword [esp], eax
call fcn.0043bab0
add esp, 4
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xdb8e7350
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x4b27dad7
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0x350]
mov dword [esi + 0x10c], eax
mov al, byte [esi + 0x16c]
mov byte [esi + 0x2a8], al
mov byte [esi + 0x308], 0xff
mov byte [esi + 0x309], 0xd3
mov byte [esi + 0x30a], 0x5a
mov eax, 3
mov byte [esi + eax + 0x308], 0
add eax, 1
cmp eax, 7
jne 0x4123b5
xor eax, eax
cmp eax, 7
jae 0x41242b
movzx edx, byte [esi + eax + 0x308]
mov ecx, 0x3fd1cd90
sub ecx, eax
and ecx, 0xe017f57e
mov edi, eax
add edi, 0x2e326f
and edi, 0x1fe80a81
or ecx, edi
xor ecx, edx
xor ecx, 0x1fe80a81
add ecx, 1
mov edx, ecx
shl edx, 1
and edx, 0x58
xor ecx, 0xd3
sub ecx, edx
add cl, 2
mov byte [esi + eax + 0x308], cl
mov ecx, eax
add ecx, 1
mov edx, eax
xor edx, 0xffffffff
or edx, 1
add edx, ecx
or eax, 1
add eax, edx
jmp 0x4123c7
lea eax, [esi + 0x308]
sub esp, 8
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401b20
add esp, 8
mov dword [esi + 0x110], eax
mov eax, 0x48efb887
cmp dword [esi + 0x110], 0
jne 0x41245f
mov eax, 0x2af22f96
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov dword [esi + 0x360], 0
mov dword [esi + 0x35c], 0
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x674dd767
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0x358]
mov dword [esi + 0xa4], eax
mov ecx, dword [esi + 0xa4]
mov eax, 0x743c1feb
cmp ecx, dword [esi + 0x30]
jb 0x4125da
mov eax, 0x5bcebbd3
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x13ddbd1b
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0xf8]
sub esp, 4
mov dword [esp], eax
call fcn.004086f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x5be8ab6a
jmp 0x4139c1
mov eax, dword [esi + 0x104]
sub esp, 4
mov dword [esp], eax
call fcn.004086f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0xfe63a27a
jmp 0x4139c1
mov eax, dword [esi + 0x10c]
sub esp, 4
mov dword [esp], eax
call fcn.004086f0
add esp, 4
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xf2a2d458
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0x4d8]
mov ecx, dword [esi + 0xc]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018c0
add esp, 8
mov dword [esi + 0x11c], eax
mov al, byte [esi + 0x144]
mov byte [esi + 0x2c0], al
mov byte [esi + 0x3b4], 6
mov byte [esi + 0x3b5], 0x89
mov eax, 2
mov byte [esi + eax + 0x3b4], 0
add eax, 1
cmp eax, 7
jne 0x412d5e
xor eax, eax
cmp eax, 7
jae 0x412daf
movzx edx, byte [esi + eax + 0x3b4]
mov ecx, eax
add ecx, 0x81a68ea2
xor ecx, edx
mov edx, ecx
add edx, 1
mov edi, ecx
xor edi, 0xffffffff
or edi, 0x55
add edx, edi
shl edx, 1
xor ecx, 0xd5
add ecx, edx
add cl, 1
mov byte [esi + eax + 0x3b4], cl
add eax, 1
jmp 0x412d70
mov eax, dword [esi + 0xc]
sub esp, 8
lea ecx, [esi + 0x3b4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004018c0
add esp, 8
mov dword [esi + 0x120], eax
mov eax, dword [esi + 0x11c]
test eax, eax
sete cl
mov eax, dword [esi + 0x120]
test eax, eax
sete al
or cl, al
mov eax, 0xa891c9ae
test cl, 1
jne 0x412df7
mov eax, 0x7fcd9998
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [edi]
mov dword [eax], 0xdd28b314
jmp 0x4139c1
mov eax, dword [esi + 0x12c]
sub esp, 4
mov dword [esp], eax
call fcn.00402070
add esp, 4
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x38]
mov ecx, 8
mul ecx
seto cl
add eax, 4
setb dl
and cl, cl
xor cl, 0xff
mov ch, dl
xor ch, 0xff
xor dl, 0xff
or ch, dl
xor cl, 0xff
xor ch, 0xff
or cl, ch
mov edx, 0xffffffff
test cl, 1
jne 0x413021
mov edx, eax
sub esp, 4
mov dword [esp], edx
call fcn.004086e0
add esp, 4
mov ecx, dword [esi + 0x38]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 0xa8], eax
mov eax, 0xd0d81781
cmp dword [esi + 0x38], 0
je 0x41304d
mov eax, 0xee1d55ca
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0x38]
shl ecx, 3
add eax, ecx
mov dword [esi + 0x4dc], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x77563bda
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x1164f1f5
mov dword [esi + 0x36c], 0
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0x12c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402080
add esp, 8
mov dword [esi + 0x32c], eax
mov al, byte [esi + 0x13c]
mov byte [esi + 0x2c8], al
mov byte [esi + 0x2e8], 0xfb
mov byte [esi + 0x2e9], 0xf1
mov byte [esi + 0x2ea], 0x66
mov eax, 3
mov byte [esi + eax + 0x2e8], 0
add eax, 1
cmp eax, 5
jne 0x4131ff
xor eax, eax
cmp eax, 5
jae 0x41325e
movzx edx, byte [esi + eax + 0x2e8]
mov ecx, eax
add ecx, 0xec53f399
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edi, ecx
add edi, 3
mov edx, 0xfd
sub edx, ecx
or edx, 1
add edx, edi
or ecx, 1
add ecx, 2
add ecx, edx
mov byte [esi + eax + 0x2e8], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x413211
lea eax, [esi + 0x2e8]
sub esp, 8
mov ecx, dword [esi + 0x32c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018c0
add esp, 8
mov dword [esi + 0x480], eax
mov al, byte [esi + 0x138]
mov byte [esi + 0x2cc], al
mov byte [esi + 0x2e0], 0x3b
mov byte [esi + 0x2e1], 0x15
mov byte [esi + 0x2e2], 0x9e
mov eax, 3
mov byte [esi + eax + 0x2e0], 0
add eax, 1
cmp eax, 5
jne 0x4132a8
xor eax, eax
cmp eax, 5
jae 0x413322
movzx edi, byte [esi + eax + 0x2e0]
mov ebx, eax
and ebx, 0xc7e825b
xor ebx, 0xc7e825b
mov ecx, eax
and ecx, 0xf3817da4
sub ecx, ebx
mov ebx, edi
and ebx, 0xc9
xor ebx, 0xc9
mov edx, edi
and edx, 0xc9
xor edx, 0xa1a65fc9
or ebx, edx
and edi, 0x36
or ebx, edi
xor ecx, ebx
mov edx, ecx
shl edx, 1
and edx, 8
xor ecx, 0xcd
add ecx, edx
add cl, 0xc3
mov byte [esi + eax + 0x2e0], cl
add eax, 1
jmp 0x4132ba
lea eax, [esi + 0x2e0]
sub esp, 8
mov ecx, dword [esi + 0x32c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018c0
add esp, 8
mov ecx, dword [esi + 0xac]
shl ecx, 3
add ecx, dword [esi + 0xa8]
sub esp, 8
mov dword [esp], eax
mov eax, dword [esi + 0x480]
mov dword [esp + 4], eax
call fcn.00418800
mov eax, dword [esi + 0xac]
add eax, 1
mov dword [esi + 0x4e0], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x1164f1f5
mov eax, dword [esi + 0x4e0]
mov dword [esi + 0x36c], eax
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov ecx, dword [esi + 0x3b0]
mov eax, 0x5b399d6b
cmp dword [esi + 0x3c], ecx
je 0x41345b
mov eax, 0x6ddf7703
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 0x3b0]
mov dword [esi + 0x378], eax
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [edi]
mov dword [eax], 0xcdf77cdd
jmp 0x4139c1
mov eax, dword [esi + 0x124]
sub esp, 4
mov dword [esp], eax
call fcn.004086f0
add esp, 4
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x96bf0812
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [edi]
mov dword [eax], 0x53f62fcf
jmp 0x4139c1
mov eax, dword [edi]
mov dword [eax], 0x1af78e4
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xdd28b314
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xa46e7df2
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov eax, dword [edi]
mov dword [eax], 0xb39ba26b
jmp 0x4139c1
mov eax, dword [esi + 0xbc]
sub eax, 0x95600207
add eax, 1
add eax, 0x95600207
mov dword [esi + 0x4e4], eax
mov eax, dword [edi]
mov dword [eax], 0x536c3024
mov eax, dword [esi + 0x4e4]
mov dword [esi + 0x338], eax
jmp 0x4139c1
mov al, byte [esi + 0x13]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
outsd dx, dword [esi]
cld
push edx
mov eax, dword [edi]
pop es
mov dword [eax], 0xfc733de
jmp 0x4139c1
jno 0x413607
push edi
push cs
rcr byte [esi + ebx + 0xc], 0x8a
inc esi
sbb al, 0x88
xchg byte [edx + eax], bl
add byte [eax], al
mov byte [esi + 0x68], 0x44
mov byte [esi + 0x69], 0x39
mov eax, 2
mov byte [esi + eax + 0x68], 0
add eax, 1
cmp eax, 6
jne 0x413631
xor eax, eax
cmp eax, 6
jae 0x41365c
mov cl, byte [esi + eax + 0x68]
mov dl, al
add dl, 0xb6
xor dl, cl
add dl, 0x72
mov byte [esi + eax + 0x68], dl
add eax, 1
jmp 0x413640
mov eax, dword [esi + 0xc]
lea ecx, [esi + 0x68]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401f50
add esp, 0xc
mov eax, dword [edi]
mov dword [eax], 0x2fac3792
jmp 0x4139c1
mov word [edx - 0x36], es
inc eax
mov eax, dword [esi + 0x9c]
sub esp, 4
mov dword [esp], eax
call fcn.004086f0
add esp, 4
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xfa7ddfd8
mov ebx, dword [esi + 8]
jmp 0x4139c1
and ebx, edi
sbb al, 0x48
imul edi, edi, 0xffffff95
xchg ecx, eax
lodsd eax, dword [esi]
mov eax, dword [0x8b36498f]
xchg byte [ecx + eax], dl
add byte [eax], al
sub esp, 4
mov dword [esp], eax
call fcn.004086f0
add esp, 4
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xee869d76
mov ebx, dword [esi + 8]
jmp 0x4139c1
mov ecx, dword [esi + 0x130]
call fcn.004187f0
mov eax, dword [edi]
mov dword [eax], 0x71471c71
jmp 0x4139c1
cmpsd dword [esi], dword es:[edi]
sahf
dec edi
cdq
nop
push edx
cdq
jnp 0x413936
mov cs, word [eax]
add eax, 0x7de80000
pop edx
invalid
jmp 0x40ebbe