Function at 0x40ede0
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x740
mov esi, esp
mov al, byte [esi + 0x20c]
mov byte [esi + 0x210], al
mov byte [esi + 0x450], 0x51
mov byte [esi + 0x451], 0xcb
mov eax, 2
mov byte [esi + eax + 0x450], 0
add eax, 1
cmp eax, 7
jne 0x40ee10
xor eax, eax
cmp eax, 7
jae 0x40ee85
movzx edi, byte [esi + eax + 0x450]
mov edx, eax
add edx, 0x9a53033
mov ecx, edi
and ecx, 0x93
xor ecx, 0xe604e493
mov ebx, edi
add ebx, 1
xor edi, 0xffffffff
or edi, 0x19fb1b6c
add edi, ebx
mov ebx, 0xb65acfcc
sub ebx, eax
and ebx, 0xe604e493
and edx, 0x19fb1b6c
or ecx, edi
or ebx, edx
mov edx, ebx
and edx, ecx
shl edx, 1
sub ebx, edx
add ebx, ecx
add bl, 1
mov byte [esi + eax + 0x450], bl
add eax, 1
jmp 0x40ee22
sub esp, 8
lea eax, [esi + 0x450]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401b00
add esp, 8
mov dword [esi + 0xec], eax
push eax
mov ebx, esp
push eax
mov edi, esp
mov dword [ebx], 0x5272f73a
mov dword [edi], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 4], edi
mov eax, dword [ebx]
mov ecx, eax
sub ecx, 0x81322dea
je 0x41349c
jmp 0x40eecc
mov ecx, eax
sub ecx, 0x82bda037
je 0x41093d
jmp 0x40eedc
mov ecx, eax
sub ecx, 0x84f74e6d
je 0x410d66
jmp 0x40eeec
mov ecx, eax
sub ecx, 0x8546c1bb
je 0x41208d
jmp 0x40eefc
mov ecx, eax
sub ecx, 0x8796a1b3
je 0x4132fe
jmp 0x40ef0c
mov ecx, eax
sub ecx, 0x882391b3
je 0x4139be
jmp 0x40ef1c
mov ecx, eax
sub ecx, 0x8ac7d2fb
je 0x4137eb
jmp 0x40ef2c
mov ecx, eax
sub ecx, 0x8cfa14bb
je 0x41398d
jmp 0x40ef3c
mov ecx, eax
sub ecx, 0x8d355973
je 0x412c5d
jmp 0x40ef4c
mov ecx, eax
sub ecx, 0x8e8f5bd0
je 0x40fe11
jmp 0x40ef5c
mov ecx, eax
sub ecx, 0x8ea6d746
je 0x412cd5
jmp 0x40ef6c
mov ecx, eax
sub ecx, 0x90153ba5
je 0x413825
jmp 0x40ef7c
mov ecx, eax
sub ecx, 0x90778d9d
je 0x411fad
jmp 0x40ef8c
mov ecx, eax
sub ecx, 0x92a851df
je 0x41094a
jmp 0x40ef9c
mov ecx, eax
sub ecx, 0x94191e85
je 0x413426
jmp 0x40efac
mov ecx, eax
sub ecx, 0x959f1096
je 0x410f6d
jmp 0x40efbc
mov ecx, eax
sub ecx, 0x961cc663
je 0x40fda1
jmp 0x40efcc
mov ecx, eax
sub ecx, 0x970c1ccb
je 0x412acf
jmp 0x40efdc
mov ecx, eax
sub ecx, 0x97692bd6
je 0x4109a5
jmp 0x40efec
mov ecx, eax
sub ecx, 0x9845a658
je 0x411c8a
jmp 0x40effc
mov ecx, eax
sub ecx, 0x986aebc2
je 0x410a4b
jmp 0x40f00c
mov ecx, eax
sub ecx, 0x9abbf9d6
je 0x4133e2
jmp 0x40f01c
mov ecx, eax
sub ecx, 0x9bbd14c8
je 0x410c8d
jmp 0x40f02c
mov ecx, eax
sub ecx, 0x9daa2622
je 0x412261
jmp 0x40f03c
mov ecx, eax
sub ecx, 0xa02f4a25
je 0x410b1f
jmp 0x40f04c
mov ecx, eax
sub ecx, 0xa07187e7
je 0x413a65
jmp 0x40f05c
mov ecx, eax
sub ecx, 0xa0aa8801
je 0x413071
jmp 0x40f06c
mov ecx, eax
sub ecx, 0xa170164f
je 0x411e05
jmp 0x40f07c
mov ecx, eax
sub ecx, 0xa36b9b21
je 0x411f63
jmp 0x40f08c
mov ecx, eax
sub ecx, 0xa43d21c5
je 0x410aad
jmp 0x40f09c
mov ecx, eax
sub ecx, 0xa4854a2a
je 0x4126b9
jmp 0x40f0ac
mov ecx, eax
sub ecx, 0xa4f3cd94
je 0x413732
jmp 0x40f0bc
mov ecx, eax
sub ecx, 0xa72b5c44
je 0x41277a
jmp 0x40f0cc
mov ecx, eax
sub ecx, 0xa8fd2415
je 0x41318c
jmp 0x40f0dc
mov ecx, eax
sub ecx, 0xaad1c34b
je 0x41086b
jmp 0x40f0ec
mov ecx, eax
sub ecx, 0xaae02c32
je 0x40feed
jmp 0x40f0fc
mov ecx, eax
sub ecx, 0xabb3809e
je 0x41085e
jmp 0x40f10c
mov ecx, eax
sub ecx, 0xabbcf82c
je 0x410285
jmp 0x40f11c
mov ecx, eax
sub ecx, 0xad744ed4
je 0x410a7a
jmp 0x40f12c
mov ecx, eax
sub ecx, 0xada4fad3
je 0x410d0f
jmp 0x40f13c
mov ecx, eax
sub ecx, 0xae49ce31
je 0x40fdbd
jmp 0x40f14c
mov ecx, eax
sub ecx, 0xafe057a0
je 0x40fb9e
jmp 0x40f15c
mov ecx, eax
sub ecx, 0xb0560276
je 0x4116bb
jmp 0x40f16c
mov ecx, eax
sub ecx, 0xb11e7bb1
je 0x410e3e
jmp 0x40f17c
mov ecx, eax
sub ecx, 0xb13ea2c5
je 0x41203c
jmp 0x40f18c
mov ecx, eax
sub ecx, 0xb4e4e364
je 0x411103
jmp 0x40f19c
mov ecx, eax
sub ecx, 0xb6866506
je 0x410d32
jmp 0x40f1ac
mov ecx, eax
sub ecx, 0xb6b10734
je 0x40fb8d
jmp 0x40f1bc
mov ecx, eax
sub ecx, 0xb6b9ba1a
je 0x4116ae
jmp 0x40f1cc
mov ecx, eax
sub ecx, 0xb8c99306
je 0x410c1c
jmp 0x40f1dc
mov ecx, eax
sub ecx, 0xb93c8bac
je 0x411ba5
jmp 0x40f1ec
mov ecx, eax
sub ecx, 0xbbd93057
je 0x40fdd9
jmp 0x40f1fc
mov ecx, eax
sub ecx, 0xbe25aa49
je 0x411242
jmp 0x40f20c
mov ecx, eax
sub ecx, 0xc041e31c
je 0x412823
jmp 0x40f21c
mov ecx, eax
sub ecx, 0xc19104b5
je 0x410bb2
jmp 0x40f22c
mov ecx, eax
sub ecx, 0xc2b10b32
je 0x411fe7
jmp 0x40f23c
mov ecx, eax
sub ecx, 0xc31c1e82
je 0x413517
jmp 0x40f24c
mov ecx, eax
sub ecx, 0xc3900ebd
je 0x410aa0
jmp 0x40f25c
mov ecx, eax
sub ecx, 0xc7aa1828
je 0x4127c0
jmp 0x40f26c
mov ecx, eax
sub ecx, 0xc84c944e
je 0x412c2f
jmp 0x40f27c
mov ecx, eax
sub ecx, 0xc8bf864e
je 0x411681
jmp 0x40f28c
mov ecx, eax
sub ecx, 0xc8fdeae5
je 0x412df8
jmp 0x40f29c
mov ecx, eax
sub ecx, 0xc935a4c3
je 0x412c3c
jmp 0x40f2ac
mov ecx, eax
sub ecx, 0xcad85521
je 0x411138
mov eax, dword [edi]
mov dword [eax], 0xc31c1e82
mov byte [esi + 0x1f], 1
jmp 0x413bbd
mov eax, dword [esi + 0xf0]
mov ecx, dword [esi + 0xec]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402060
add esp, 8
mov dword [esi + 8], eax
mov al, byte [esi + 0x208]
mov byte [esi + 0x214], al
mov byte [esi + 0x448], 0x38
mov byte [esi + 0x449], 0x87
mov eax, 2
mov byte [esi + eax + 0x448], 0
add eax, 1
cmp eax, 6
jne 0x40fbde
xor edx, edx
cmp edx, 6
jae 0x40fc45
movzx eax, byte [esi + edx + 0x448]
mov dword [esi + 0x46c], eax
mov ecx, edx
add ecx, 0x25203021
mov edi, ecx
and edi, eax
mov eax, edi
and eax, 0xfd
mov ebx, edi
and ebx, 2
xor ebx, 2
imul ebx, eax
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
add edi, ebx
add ecx, dword [esi + 0x46c]
sub ecx, edi
add cl, 0x5b
mov byte [esi + edx + 0x448], cl
add edx, 1
jmp 0x40fbf0
mov eax, dword [esi + 8]
sub esp, 0xc
lea ecx, [esi + 0x448]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 3
call fcn.00401f30
add esp, 0xc
sub eax, 1
mov cl, 1
sbb cl, 0xff
mov eax, 0x6f8a6e69
test cl, 1
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 4]
jne 0x40fc85
mov eax, 0x1699f51a
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x413bbd
mov eax, 0x34b2ab4a
cmp dword [esi + 0x88], 3
jl 0x40fdb4
mov eax, 0xae49ce31
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x413bbd
mov eax, 0x84f74e6d
cmp dword [esi + 0x88], 3
je 0x40fdd0
mov eax, 0x325c5f18
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x413bbd
mov eax, 0x63a2207b
cmp dword [esi + 0x88], 1
jl 0x40fdec
mov eax, 0xd19bb473
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x61cf8faf
jmp 0x413bbd
mov eax, 0x4a19c382
test byte [esi + 0x46], 1
jne 0x40fefd
mov eax, 0x5999e3ab
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x740d34bb
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x30f83599
jmp 0x413bbd
mov eax, dword [esi + 0x1d8]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x410887
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408730
add esp, 4
mov dword [esi + 0xfc], eax
mov eax, dword [0x44ce60]
mov dword [esi + 0x468], eax
mov ecx, dword [esi + 0x1d8]
mov edx, dword [esi + 0xfc]
mov edi, dword [esi + 0x50]
mov ebx, dword [esi + 0xf8]
xor eax, eax
lea eax, [esi + 0x1d8]
sub esp, 0x18
mov dword [esp], 0
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call dword [esi + 0x468]
mov ecx, 0x82bda037
cmp eax, 0
jge 0x4108f6
mov ecx, 0xd9c693b7
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], ecx
mov ebx, dword [esi + 0xc]
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x92a851df
jmp 0x413bbd
mov eax, dword [esi + 0x50]
sub esp, 4
mov dword [esp], eax
call fcn.00408740
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x7c59bd80
jmp 0x413bbd
mov eax, dword [esi + 0x4b4]
mov dl, byte [esi + 0x4b8]
mov ecx, 0xffffffff
test dl, 1
jne 0x4109bd
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408730
add esp, 4
mov dword [esi + 0x100], eax
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0x3a0]
mov edx, dword [esi + 0x39c]
xor edi, edi
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040af70
add esp, 0x10
lea ecx, [esi + 0x6b0]
sub esp, 4
mov dword [esp], 1
call fcn.00409370
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x24dec6ed
mov dword [esi + 0x35c], 0
jmp 0x413bbd
mov eax, dword [esi + 0xf4]
sub esp, 4
mov dword [esp], eax
call fcn.00402050
add esp, 4
cmp dword [esi + 0x104], eax
setb al
and al, 1
mov byte [esi + 0x4a], al
mov eax, dword [edi]
mov dword [eax], 0xad744ed4
jmp 0x413bbd
mov eax, 0xe816d850
test byte [esi + 0x4a], 1
jne 0x410a8a
mov eax, 0x444251ae
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0xa43d21c5
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0xae4cd7c
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x29611424
jmp 0x413bbd
mov ecx, dword [esi + 0x10c]
mov eax, dword [esi + 0x100]
mov edx, dword [esi + 0xfc]
mov bl, byte [esi + 0x49]
mov byte [esi + 0x40], bl
mov edi, dword [esi + 0x4b0]
mov ebx, dword [esi + 0x4ac]
sub esp, 0x1c
mov dword [esp + 0x14], ebx
mov ebx, dword [esi + 0xc]
mov dword [esp + 0x10], edi
mov edi, dword [esi + 4]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea eax, [esi + 0x6b0]
mov dword [esp], eax
movzx eax, byte [esi + 0x40]
and eax, 1
mov dword [esp + 0x18], eax
call fcn.004233d0
add esp, 0x1c
mov eax, dword [edi]
mov dword [eax], 0xb8c99306
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0xf6c2894a
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x10c881bc
jmp 0x413bbd
lea ecx, [esi + 0x6b0]
call fcn.00409df0
lea ecx, [esi + 0x6b0]
call fcn.00409450
mov eax, dword [edi]
mov dword [eax], 0xb6866506
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x30f83599
jmp 0x413bbd
mov al, byte [esi + 0x1d0]
mov byte [esi + 0x260], al
mov byte [esi + 0xa4], 0x9d
mov byte [esi + 0xa5], 0xfb
mov eax, 2
mov byte [esi + eax + 0xa4], 0
add eax, 1
cmp eax, 4
jne 0x410d85
xor eax, eax
cmp eax, 4
jae 0x410dfd
movzx ecx, byte [esi + eax + 0xa4]
mov edi, eax
add edi, 0x99a56aff
mov ebx, ecx
xor ebx, 0xffffffff
mov edx, edi
and edx, ebx
mov ebx, 0x665a9500
sub ebx, eax
and ebx, 0xfcc65e33
and edi, 0x339a1cc
or ebx, edi
mov edi, ebx
xor edi, 0xfcc65e33
xor ebx, 0xfcc65e33
and edi, ebx
xor edi, 0xffffffff
and ecx, edi
or ecx, edx
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, 0x7d
or ecx, edx
add cl, 0x87
mov byte [esi + eax + 0xa4], cl
add eax, 1
jmp 0x410d97
mov eax, dword [esi + 8]
lea ecx, [esi + 0xa4]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call fcn.00401f30
add esp, 0xc
mov ecx, 0xb11e7bb1
cmp eax, 0
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 4]
jne 0x410e35
mov ecx, 0xd2000aa7
mov eax, dword [edi]
mov dword [eax], ecx
jmp 0x413bbd
mov al, byte [esi + 0x1cc]
mov byte [esi + 0x264], al
mov byte [esi + 0x420], 0xd4
mov byte [esi + 0x421], 0x47
mov eax, 2
mov byte [esi + eax + 0x420], 0
add eax, 1
cmp eax, 5
jne 0x410e5d
xor eax, eax
cmp eax, 5
jae 0x410e91
mov cl, byte [esi + eax + 0x420]
mov dl, al
add dl, 0x11
xor dl, cl
add dl, 0xab
mov byte [esi + eax + 0x420], dl
add eax, 1
jmp 0x410e6f
mov eax, dword [esi + 8]
lea ecx, [esi + 0x420]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call fcn.00401f30
add esp, 0xc
mov ecx, 0x73315cc8
cmp eax, 0
jne 0x410ec3
mov ecx, 0xd2000aa7
mov eax, dword [edi]
mov dword [eax], ecx
jmp 0x413bbd
mov al, byte [esi + 0x1c4]
mov byte [esi + 0x26c], al
mov byte [esi + 0x9c], 0x1a
mov byte [esi + 0x9d], 0x9b
mov eax, 2
mov byte [esi + eax + 0x9c], 0
add eax, 1
cmp eax, 4
jne 0x410f8c
xor eax, eax
cmp eax, 4
jae 0x410fec
movzx edi, byte [esi + eax + 0x9c]
mov edx, eax
add edx, 0xdb
mov ecx, 0x24
sub ecx, eax
mov ebx, 0x24
sub ebx, eax
and ecx, ebx
or edx, edi
xor edi, 0xffffffff
or ecx, edi
and ecx, edx
add cl, 0xb9
mov byte [esi + eax + 0x9c], cl
mov ecx, eax
and ecx, 1
mov edx, eax
and edx, 1
xor edx, 0xffffffff
add eax, 2
add eax, edx
add eax, ecx
jmp 0x410f9e
mov eax, dword [esi + 8]
lea ecx, [esi + 0x9c]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call fcn.00401f30
add esp, 0xc
mov ecx, 0x1f12dc9f
cmp eax, 0
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 4]
jne 0x411024
mov ecx, 0xd2000aa7
mov eax, dword [edi]
mov dword [eax], ecx
jmp 0x413bbd
cmp dword [esi + 0x4c0], 0
setne al
and al, 1
mov byte [esi + 0x4b], al
mov eax, dword [edi]
mov dword [eax], 0xd14268fc
jmp 0x413bbd
mov al, byte [esi + 0x1bc]
mov byte [esi + 0x27c], al
mov byte [esi + 0x98], 0x1d
mov byte [esi + 0x99], 0xbb
mov eax, 2
mov byte [esi + eax + 0x98], 0
add eax, 1
cmp eax, 4
jne 0x411261
xor eax, eax
cmp eax, 4
jae 0x411295
mov cl, byte [esi + eax + 0x98]
mov dl, al
add dl, 0x5f
xor dl, cl
add dl, 0x25
mov byte [esi + eax + 0x98], dl
add eax, 1
jmp 0x411273
mov eax, dword [esi + 8]
lea ecx, [esi + 0x98]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018a0
add esp, 8
mov dword [esi + 0x350], eax
mov al, byte [esi + 0x1b8]
mov byte [esi + 0x280], al
mov byte [esi + 0x410], 0x5c
mov byte [esi + 0x411], 0xcb
mov eax, 2
mov byte [esi + eax + 0x410], 0
add eax, 1
cmp eax, 5
jne 0x4112d5
xor eax, eax
cmp eax, 5
jae 0x411315
mov dl, byte [esi + eax + 0x410]
mov edi, eax
xor edi, 0xcd
mov ecx, eax
shl ecx, 1
and ecx, 0x64
sub ecx, edi
xor cl, dl
add cl, 1
mov byte [esi + eax + 0x410], cl
add eax, 1
jmp 0x4112e7
mov eax, dword [esi + 8]
lea ecx, [esi + 0x410]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018a0
add esp, 8
mov dword [esi + 0x3a4], eax
mov al, byte [esi + 0x1b4]
mov byte [esi + 0x284], al
mov byte [esi + 0x408], 0x77
mov byte [esi + 0x409], 0xdb
mov eax, 2
mov byte [esi + eax + 0x408], 0
add eax, 1
cmp eax, 7
jne 0x411355
xor eax, eax
cmp eax, 7
jae 0x411389
mov cl, byte [esi + eax + 0x408]
mov dl, al
add dl, 0x2f
xor dl, cl
add dl, 0x15
mov byte [esi + eax + 0x408], dl
add eax, 1
jmp 0x411367
mov eax, dword [esi + 8]
lea ecx, [esi + 0x408]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401b00
add esp, 8
mov dword [esi + 0x3a8], eax
mov al, byte [esi + 0x1b0]
mov byte [esi + 0x288], al
mov byte [esi + 0x94], 0xae
mov byte [esi + 0x95], 0x27
mov eax, 2
mov byte [esi + eax + 0x94], 0
add eax, 1
cmp eax, 4
jne 0x4113c9
xor eax, eax
cmp eax, 4
jae 0x4113fd
mov cl, byte [esi + eax + 0x94]
mov dl, al
add dl, 0x89
xor dl, cl
add dl, 0x53
mov byte [esi + eax + 0x94], dl
add eax, 1
jmp 0x4113db
mov eax, dword [esi + 8]
lea ecx, [esi + 0x94]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018a0
add esp, 8
mov dword [esi + 0x3ac], eax
mov al, byte [esi + 0x1ac]
mov byte [esi + 0x28c], al
mov byte [esi + 0x400], 0x6c
mov byte [esi + 0x401], 0x91
mov eax, 2
mov byte [esi + eax + 0x400], 0
add eax, 1
cmp eax, 7
jne 0x41143d
xor eax, eax
cmp eax, 7
jae 0x41149a
movzx edx, byte [esi + eax + 0x400]
mov ecx, eax
add ecx, 0xc62c0adc
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edx, ecx
and edx, 0xb3
mov edi, ecx
and edi, 0xb3
xor edi, 0xffffffff
add ecx, 0xb4
add ecx, edi
add ecx, edx
add cl, 1
mov byte [esi + eax + 0x400], cl
add eax, 1
jmp 0x41144f
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x400]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004019d0
add esp, 8
fnstcw word [esi + 0xc4]
movzx eax, word [esi + 0xc4]
or eax, 0xc00
mov word [esi + 0x2fc], ax
fldcw word [esi + 0x2fc]
fistp dword [esi + 0x4a8]
fldcw word [esi + 0xc4]
mov eax, dword [esi + 0x4a8]
mov dword [esi + 0x4c4], eax
mov al, byte [esi + 0x1a8]
mov byte [esi + 0x290], al
mov byte [esi + 0x324], 0x7e
mov byte [esi + 0x325], 0x82
mov byte [esi + 0x326], 0x12
mov eax, 3
mov byte [esi + eax + 0x324], 0
add eax, 1
cmp eax, 5
jne 0x411512
xor eax, eax
cmp eax, 5
jae 0x411573
movzx edx, byte [esi + eax + 0x324]
mov ecx, eax
add ecx, 0x16e1c04
mov edi, 0xfb
sub edi, eax
and edi, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, edi
mov edx, ecx
and edx, 0xeb
mov edi, ecx
and edi, 0x14
mov ebx, ecx
xor ebx, 0xeb
add ecx, ebx
sub ecx, edi
add edx, ecx
add dl, 1
mov byte [esi + eax + 0x324], dl
add eax, 1
jmp 0x411524
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x324]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004019d0
add esp, 8
fnstcw word [esi + 0xc2]
movzx eax, word [esi + 0xc2]
or eax, 0xc00
mov word [esi + 0x2fa], ax
fldcw word [esi + 0x2fa]
fistp dword [esi + 0x4a4]
fldcw word [esi + 0xc2]
mov eax, dword [esi + 0x4a4]
mov dword [esi + 0x4c8], eax
sub esp, 4
mov eax, dword [esi + 0x350]
mov dword [esp], eax
call fcn.004187a0
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
mov ebx, dword [esi + 0xc]
jne 0x4115f9
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408730
add esp, 4
mov dword [esi + 0x110], eax
mov eax, dword [esi + 0x110]
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esi + 0x350]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040af70
add esp, 0x10
mov eax, dword [esi + 0x110]
lea ecx, [esi + 0x508]
sub esp, 4
mov dword [esp], eax
call fcn.00418810
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x7e087235
jmp 0x413bbd
lea ecx, [esi + 0x508]
sub esp, 4
mov dword [esp], 0x1000
call fcn.0043aaa0
mov ecx, 0xb0560276
cmp eax, 0
jge 0x4116a5
mov ecx, 0xb6b9ba1a
mov eax, dword [edi]
mov dword [eax], ecx
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x47a133a0
jmp 0x413bbd
mov dword [esi + 0x1a4], 0
mov eax, dword [esi + 0x508]
mov dword [esi + 0x480], eax
mov al, byte [esi + 0x294]
mov byte [esi + 0x2f8], al
mov byte [esi + 0x298], 0x45
mov byte [esi + 0x299], 0x46
mov byte [esi + 0x29a], 0x47
mov byte [esi + 0x29b], 0x40
mov eax, 4
mov byte [esi + eax + 0x298], 0
add eax, 1
cmp eax, 5
jne 0x4116fe
xor eax, eax
cmp eax, 5
jae 0x411732
mov cl, byte [esi + eax + 0x298]
mov dl, al
add dl, 0xf1
xor dl, cl
add dl, 0x4b
mov byte [esi + eax + 0x298], dl
add eax, 1
jmp 0x411710
mov ebx, dword [esi + 0x298]
xor edi, edi
mov ecx, 2
cmp edi, dword [0x44ce64]
jb 0x41174c
jmp 0x4117d9
mov ecx, dword [0x44ce68]
cmp dword [ecx + edi*8], 0xfc36c0a1
sete dl
test dl, 1
mov byte [esi + 0x44], dl
jne 0x411766
jmp 0x4117c7
mov edx, dword [ecx + edi*8 + 4]
mov ecx, 2
cmp edx, ebx
je 0x4117c9
mov eax, dword [0x44ce6c]
xor ecx, ecx
lea ecx, [esi + 0x1a4]
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x480]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
call fcn.0043d480
add esp, 0x20
mov ecx, 1
jmp 0x4117c9
xor ecx, ecx
test byte [esi + 0x44], 1
je 0x4117d1
jmp 0x4117d9
add edi, 1
jmp 0x41173a
cmp ecx, 2
je 0x4117e0
mov ebx, eax
mov al, byte [esi + 0x198]
mov byte [esi + 0x2a0], al
mov byte [esi + 0x19c], pe_nt_image_headers32
mov byte [esi + 0x19d], 0x67
mov byte [esi + 0x19e], 0x66
mov byte [esi + 0x19f], 0xa1
mov eax, 4
mov byte [esi + eax + 0x19c], 0
add eax, 1
cmp eax, 8
jne 0x41180d
xor eax, eax
cmp eax, 8
jae 0x411891
movzx edx, byte [esi + eax + 0x19c]
mov ecx, eax
add ecx, 0xde205969
mov edi, 0x96
sub edi, eax
mov dword [esi + 0x490], ebx
mov ebx, 0x96
sub ebx, eax
and edi, ebx
mov ebx, dword [esi + 0x490]
or ecx, edx
xor edx, 0xffffffff
or edi, edx
and ecx, edi
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, 0xf2
add ecx, edx
mov byte [esi + eax + 0x19c], cl
mov ecx, eax
add ecx, 1
mov edx, eax
xor edx, 0xffffffff
or edx, 1
add ecx, edx
shl ecx, 1
mov edx, eax
shl edx, 1
and edx, 2
add eax, 1
sub eax, edx
add eax, ecx
jmp 0x41181f
mov ecx, dword [esi + 0x19c]
mov eax, 0x22cefdd
cmp ebx, ecx
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 4]
je 0x4118ab
mov eax, 0x75d9bd79
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x413bbd
mov edi, dword [esi + 0x364]
mov eax, dword [esi + 0xcc]
mov eax, dword [eax]
sub edi, eax
sar edi, 1
mov eax, dword [esi + 0x3b0]
xor ecx, ecx
sub ecx, eax
mov eax, edi
sub eax, ecx
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411bde
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408730
add esp, 4
mov dword [esi + 0xd4], eax
mov eax, dword [esi + 0xcc]
mov eax, dword [eax]
mov ecx, dword [esi + 0xd4]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00418840
add esp, 0xc
mov ecx, dword [esi + 0x114]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a360
add esp, 8
mov dword [esi + 0x4d0], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0x2e8c5c91
jmp 0x413bbd
mov ecx, dword [esi + 0x4d8]
mov eax, dword [esi + 0x4d4]
mov edx, eax
xor edx, ecx
xor ecx, 0xffffffff
and eax, ecx
shl eax, 1
sub eax, edx
sar eax, 1
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411cbe
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408730
add esp, 4
mov dword [esi + 0xd8], eax
mov eax, dword [esi + 0xd8]
mov ecx, dword [esi + 0xd4]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00438c00
add esp, 8
mov eax, dword [edi]
mov dword [eax], 0xcf307119
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x217abb3e
jmp 0x413bbd
mov eax, dword [esi + 0x124]
sub esp, 4
mov dword [esp], eax
call fcn.00408740
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0xdbc41d33
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x11119496
mov eax, dword [esi + 0x4dc]
mov dword [esi + 0x368], eax
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0xf31528f2
jmp 0x413bbd
lea ecx, [esi + 0x628]
call fcn.00409df0
lea ecx, [esi + 0x628]
call fcn.00409450
mov eax, dword [edi]
mov dword [eax], 0x7b1befd
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x75d9bd79
jmp 0x413bbd
mov eax, dword [esi + 0x128]
sub esp, 4
mov dword [esp], eax
call fcn.004187a0
add esp, 4
mov edi, eax
and edi, 1
or eax, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412297
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408730
add esp, 4
mov dword [esi + 0x130], eax
mov eax, dword [esi + 0x130]
mov ecx, dword [esi + 0x128]
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.0040af70
add esp, 0x10
mov eax, dword [esi + 0x12c]
sub esp, 4
mov dword [esp], eax
call fcn.004187a0
add esp, 4
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412308
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408730
add esp, 4
mov dword [esi + 0x134], eax
mov eax, dword [esi + 0x134]
mov ecx, dword [esi + 0x12c]
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.0040af70
add esp, 0x10
mov al, byte [esi + 0x18c]
mov byte [esi + 0x2b8], al
mov byte [esi + 0x3e8], 0xf2
mov byte [esi + 0x3e9], 9
mov eax, 2
mov byte [esi + eax + 0x3e8], 0
add eax, 1
cmp eax, 5
jne 0x412367
xor eax, eax
cmp eax, 5
jae 0x4123c4
movzx edi, byte [esi + eax + 0x3e8]
mov edx, 0x3d
sub edx, eax
mov ecx, 0x3d
sub ecx, eax
mov ebx, 0x3d
sub ebx, eax
and ecx, ebx
and edx, ecx
xor edx, 0xffffffff
mov ecx, edi
and ecx, edx
mov edx, 0x3d
sub edx, eax
xor edi, 0xffffffff
and edx, edi
or ecx, edx
mov dl, 0x35
sub dl, cl
mov byte [esi + eax + 0x3e8], dl
add eax, 1
jmp 0x412379
mov eax, dword [esi + 8]
lea ecx, [esi + 0x3e8]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018a0
add esp, 8
mov dword [esi + 0x138], eax
mov eax, 0x73956ba6
cmp dword [esi + 0x138], 0
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 4]
jne 0x4123fe
mov eax, 0xf026726
mov ecx, dword [edi]
mov dword [ecx], eax
mov dword [esi + 0x36c], 0
jmp 0x413bbd
mov eax, dword [esi + 0x148]
sub esp, 4
mov dword [esp], eax
call fcn.00402050
add esp, 4
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x54]
mov ecx, 0xc
mul ecx
seto cl
and cl, 1
mov byte [esi + 0x4e], cl
mov dword [esi + 0x4e0], eax
mov eax, dword [edi]
mov dword [eax], 0x704fcc5a
jmp 0x413bbd
mov edi, dword [esi + 0x374]
mov ecx, edi
call fcn.00418910
add edi, 0xc
mov dword [esi + 0x3c0], edi
mov ecx, dword [esi + 0x3c0]
mov eax, 0xc7aa1828
cmp ecx, dword [esi + 0x4e4]
je 0x4127a8
mov eax, 0xa72b5c44
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 0x3c0]
mov dword [esi + 0x374], eax
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0xf26809c6
mov dword [esi + 0x378], 0
jmp 0x413bbd
mov eax, dword [esi + 0xe0]
mov ecx, dword [esi + 0x148]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402060
add esp, 8
mov edi, eax
mov al, byte [esi + 0x180]
mov byte [esi + 0x2c4], al
mov byte [esi + 0x314], 0x5b
mov byte [esi + 0x315], 0x41
mov byte [esi + 0x316], 0x3e
mov eax, 3
mov byte [esi + eax + 0x314], 0
add eax, 1
cmp eax, 7
jne 0x412869
xor eax, eax
cmp eax, 7
jae 0x4128a6
mov dl, byte [esi + eax + 0x314]
mov ebx, eax
xor ebx, 0x4b
mov ecx, eax
shl ecx, 1
and ecx, 0x68
sub ecx, ebx
xor cl, dl
add cl, 0x77
mov byte [esi + eax + 0x314], cl
add eax, 1
jmp 0x41287b
lea eax, [esi + 0x314]
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov dword [esi + 0x494], eax
mov al, byte [esi + 0x17c]
mov byte [esi + 0x2c8], al
mov byte [esi + 0x30c], 0xf
mov byte [esi + 0x30d], 0x15
mov byte [esi + 0x30e], 0xea
mov eax, 3
mov byte [esi + eax + 0x30c], 0
add eax, 1
cmp eax, 5
jne 0x4128ea
xor eax, eax
cmp eax, 5
jae 0x41293c
movzx edx, byte [esi + eax + 0x30c]
mov ecx, eax
add ecx, 0x66f78215
mov ebx, ecx
xor ebx, 0x81dd26ee
shl ecx, 1
and ecx, 0xfc45b222
sub ecx, ebx
mov ebx, ecx
and ebx, edx
shl ebx, 1
add ecx, edx
sub ecx, ebx
add cl, 0x3d
mov byte [esi + eax + 0x30c], cl
add eax, 1
jmp 0x4128fc
lea eax, [esi + 0x30c]
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov dword [esi + 0x48c], eax
mov al, byte [esi + 0x170]
mov byte [esi + 0x2cc], al
mov byte [esi + 0x174], 0x80
mov byte [esi + 0x175], 0xfb
mov byte [esi + 0x176], 0xfc
mov byte [esi + 0x177], 0x11
mov eax, 4
mov byte [esi + eax + 0x174], 0
add eax, 1
cmp eax, 7
jne 0x412987
xor eax, eax
cmp eax, 7
jae 0x4129c7
mov dl, byte [esi + eax + 0x174]
mov ebx, eax
shl ebx, 1
and ebx, 0x8a
mov ecx, eax
xor ecx, 0x45
add ecx, ebx
xor cl, dl
add cl, 0xa7
mov byte [esi + eax + 0x174], cl
add eax, 1
jmp 0x412999
lea eax, [esi + 0x174]
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00401c30
add esp, 8
cmp eax, 0
setg byte [esi + 0x45]
mov al, byte [esi + 0x16c]
mov byte [esi + 0x2d0], al
mov byte [esi + 0x70], 0x97
mov byte [esi + 0x71], 0x84
mov byte [esi + 0x72], 0x99
mov byte [esi + 0x73], 0x17
xor eax, eax
cmp eax, 4
jae 0x412a3b
mov dl, byte [esi + eax + 0x70]
mov ebx, eax
add ebx, 0x46
mov ecx, eax
add ecx, 0x46
or ecx, 0x8a
sub ecx, eax
add ecx, 0xba
and ebx, 0x75
or ecx, ebx
xor cl, dl
xor cl, 0x8a
add cl, 0xa2
mov byte [esi + eax + 0x70], cl
add eax, 1
jmp 0x412a04
lea eax, [esi + 0x70]
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00401c30
add esp, 8
xor edx, edx
cmp eax, 0
setg dl
mov eax, dword [esi + 0xe0]
imul ecx, eax, 0xc
add ecx, dword [esi + 0xdc]
sub esp, 0x10
mov eax, dword [esi + 0x494]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x48c]
mov dword [esp], eax
and edx, 1
mov dword [esp + 0xc], edx
xor eax, eax
mov dl, byte [esi + 0x45]
mov al, dl
and eax, 1
mov dword [esp + 8], eax
call fcn.00418930
mov eax, dword [esi + 0xe0]
sub eax, 0x9186a4bc
add eax, 1
add eax, 0x9186a4bc
mov dword [esi + 0x4e8], eax
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xf26809c6
mov eax, dword [esi + 0x4e8]
mov dword [esi + 0x378], eax
mov ebx, dword [esi + 0xc]
jmp 0x413bbd
mov edi, dword [esi + 0x37c]
mov eax, dword [esi + 0x380]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x134]
mov dword [esi + 0x4f8], eax
mov eax, dword [esi + 0x130]
mov dword [esi + 0x4fc], eax
mov eax, dword [esi + 0x13c]
mov dword [esi + 0x500], eax
mov eax, dword [esi + 0x144]
mov dword [esi + 0x504], eax
lea ecx, [esi + 0x5a0]
sub esp, 4
mov dword [esp], 2
call fcn.00409370
mov eax, dword [esi + 0x58]
lea ecx, [esi + 0x5a0]
lea edx, [esi + 0x4f8]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
call fcn.00418fb0
add esp, 0x10
lea ecx, [esi + 0x5a0]
call fcn.00409df0
mov eax, 0xc84c944e
cmp dword [esi + 0x58], 0
je 0x412b67
mov eax, 0x79cd78d4
mov edi, dword [esi + 4]
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0xc935a4c3
jmp 0x413bbd
mov eax, dword [esi + 0x134]
sub esp, 4
mov dword [esp], eax
call fcn.00408740
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x8d355973
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0xed0e2ab6
jmp 0x413bbd
mov eax, 0xccdb7492
cmp dword [esi + 0x144], 0
je 0x412ce8
mov eax, 0xda8a9439
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x469c73c4
jmp 0x413bbd
mov eax, dword [esi + 0xe4]
sub esp, 4
mov dword [esp], eax
call fcn.00402050
add esp, 4
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x5c]
mov ecx, 8
mul ecx
seto dl
add eax, 4
setb cl
or dl, cl
mov ecx, 0xffffffff
test dl, 1
jne 0x4130a9
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408730
add esp, 4
mov ecx, dword [esi + 0x5c]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 0x90], eax
mov eax, 0xd751adba
cmp dword [esi + 0x5c], 0
je 0x4130d5
mov eax, 0x7a0eac6
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x66bd89dd
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x5c]
mov dword [esi + 0x394], ecx
mov dword [esi + 0x390], eax
jmp 0x413bbd
mov eax, dword [edi]
mov dword [eax], 0x461b4a0b
mov eax, dword [esi + 0x4f0]
mov dword [esi + 0x38c], eax
jmp 0x413bbd
mov eax, dword [esi + 0x398]
add eax, 0xfffffff8
mov dword [esi + 0x160], eax
mov ecx, dword [esi + 0x160]
call fcn.00418b90
mov ecx, dword [esi + 0x160]
mov eax, 0x94191e85
cmp ecx, dword [esi + 0x64]
je 0x413411
mov eax, 0x9abbf9d6
mov ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 0x160]
mov dword [esi + 0x398], eax
jmp 0x413bbd
mov eax, dword [esi + 0x3d0]
sub esp, 4
mov dword [esp], eax
call fcn.00408740
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x1ed4bb49
jmp 0x413bbd
mov eax, dword [esi + 0x15c]
sub esp, 4
mov dword [esp], eax
call fcn.00408740
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x61dd2439
jmp 0x413bbd
mov al, byte [esi + 0x1f]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
clc
imul esi, dword [eax], 0x694accd6
xor dword [edx - 0x7977cfba], ecx
cmp al, 2
add byte [eax], al
mov byte [esi + 0x80], 0x82
mov byte [esi + 0x81], 0x96
mov byte [esi + 0x82], 0x16
mov eax, 3
mov byte [esi + eax + 0x80], 0
add eax, 1
cmp eax, 6
jne 0x41375d
xor eax, eax
cmp eax, 6
jae 0x4137b8
mov cl, byte [esi + eax + 0x80]
mov edx, eax
and edx, 0x44
mov ebx, eax
and ebx, 2
xor ebx, 2
mov edi, eax
and edi, 0x44
imul edi, ebx
mov ebx, eax
and ebx, 2
or edx, 2
imul edx, ebx
add edx, edi
mov edi, dword [esi + 4]
mov ebx, eax
xor ebx, 0x46
add ebx, edx
xor bl, cl
add bl, 0xa2
mov byte [esi + eax + 0x80], bl
add eax, 1
jmp 0x41376f
mov eax, dword [esi + 8]
lea ecx, [esi + 0x80]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401f30
add esp, 0xc
mov eax, dword [edi]
or byte [ebx], al
add byte [eax], al
add al, ch
pop eax
out 0xfe, eax
inc dword [ebx + 0x78b0cc4]
mov dword [eax], 0xd6cc5780
mov ebx, dword [esi + 0xc]
jmp 0x413bbd
loopne 0x4137ce
mov eax, dword [0x628c5e3]
lea ecx, [ebx + 0xf486]
add byte [ebx + 0x48904ec], al
and al, 0xe8
dec esp
call 0xc4c53804
add al, 0x8b
pop es
mov dword [eax], 0x986aebc2
jmp 0x413bbd
bswap edi
add bh, byte [ecx + 0x4b92d040]
push 0xffffffffffffffdf
mov byte [0xa4bd5505], al
adc dh, byte [ecx + edi*4 + 0x78b47c0]
mov dword [eax], 0xf85ec0ec
jmp 0x413bbd
jmp 0xa284d152
cmp esp, eax
cmp ch, byte [ecx - 0x79]
call 0x505fcdf6
cmp al, 0x1d
mov ecx, ebx
jae 0x4139ff
into
jle 0x4139d8
sub ecx, dword [edx - 0x7977d7ba]
fadd dword [edx]
add byte [eax], al
mov byte [esi + 0x14], 0x9a
add al, byte [eax]
add dh, al
inc esi
adc al, 0x9a
mov byte [esi + 0x15], 0x11
mov eax, 2
mov byte [esi + eax + 0x14], 0
add eax, 1
cmp eax, 4
jne 0x4139e8
xor eax, eax
cmp eax, 4
jae 0x413a3d
movzx ecx, byte [esi + eax + 0x14]
mov edi, 3
push es
adc al, 0xbf
add eax, dword [eax]
add byte [eax], al
sub edi, eax
mov edx, eax
add edx, 0x3c
and edx, 0xe7
and edi, 0x18
or edx, edi
xor edx, 0x18
mov edi, ecx
xor edi, 0xffffffff
or edx, edi
mov edi, dword [esi + 4]
mov ebx, 0xc3
sub ebx, eax
or ebx, ecx
and ebx, edx
mov cl, 0xd3
sub cl, bl
mov byte [esi + eax + 0x14], cl
add eax, 1
jmp 0x4139f7
mov eax, dword [esi + 8]
lea ecx, [esi + 0x14]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018a0
add esp, 8
mov eax, dword [edi]
mov dword [eax], 0x469c73c4
mov ebx, dword [esi + 0xc]
jmp 0x413bbd
pop eax
add dword [eax], eax
add byte [ebx], bl
invalid
sbb eax, edi
cmpsd dword [esi], dword es:[edi]
jle 0x413a89
inc eax
lodsb al, byte [esi]
adc dh, dl
inc edi
jg 0x413a61
inc eax
invalid
inc esp
and al, 4
call fcn.00402060
add esp, 8
mov dword [esi + 0x34c], eax
mov al, byte [esi + 0x24]
mov byte [esi + 0x2e4], al
mov byte [esi + 0x10], 0x9d
mov byte [esi + 0x11], 0xab
mov byte [esi + 0x12], 0x3e
mov eax, 3
mov byte [esi + eax + 0x10], 0
add eax, 1
cmp eax, 4
jne 0x413ab4
xor eax, eax
cmp eax, 4
jae 0x413b00
mov dl, byte [esi + eax + 0x10]
movzx ebx, dl
mov ecx, eax
add ecx, 0xd2e04a
mov edi, ecx
and edi, ebx
shl edi, 1
mov ebx, edi
xor ebx, 0xffffffff
and ecx, ebx
mov ebx, 0xb5
sub ebx, eax
and edi, ebx
mov ebx, dword [esi + 0xc]
sub ecx, edi
add cl, dl
add cl, 0x8e
mov byte [esi + eax + 0x10], cl
add eax, 1
jmp 0x413ac3
lea eax, [esi + 0x10]
sub esp, 8
mov ecx, dword [esi + 0x34c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov edi, eax
mov al, byte [esi + 0x20]
mov byte [esi + 0x2ec], al
mov byte [esi + 0x68], 0x9f
mov byte [esi + 0x69], 0x75
mov byte [esi + 0x6a], 0xfa
mov eax, 3
mov byte [esi + eax + 0x68], 0
add eax, 1
cmp eax, 7
jne 0x413b37
xor eax, eax
cmp eax, 7
jae 0x413b62
mov cl, byte [esi + eax + 0x68]
mov dl, al
add dl, 0xff
xor dl, cl
add dl, 5
mov byte [esi + eax + 0x68], dl
add eax, 1
jmp 0x413b46
lea eax, [esi + 0x68]
sub esp, 8
mov ecx, dword [esi + 0x34c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
add esp, 8
mov ecx, dword [esi + 0x60]
shl ecx, 3
add ecx, dword [esi + 0x90]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00418ad0
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov dword [eax], 0xed673b27
jmp 0x413bbd
jmp 0x40eeba