Function at 0x40f260
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x780
mov esi, esp
mov al, byte [esi + 0x210]
mov byte [esi + 0x214], al
mov byte [esi + 0x488], 0x11
mov byte [esi + 0x489], 0xfb
mov eax, 2
mov byte [esi + eax + 0x488], 0
add eax, 1
cmp eax, 6
jne 0x40f290
xor eax, eax
cmp eax, 6
jae 0x40f2f7
movzx edx, byte [esi + eax + 0x488]
mov ecx, 0xd4
sub ecx, eax
mov edi, 0xd4
sub edi, eax
and ecx, edi
mov edi, edx
xor edi, 0xffffffff
or ecx, edi
mov edi, eax
add edi, 0xb866922b
or edi, edx
and ecx, edi
mov edi, ecx
shl edi, 1
mov edx, 2
sub edx, edi
and edx, 2
xor edx, 2
xor ecx, 1
add ecx, 0x28
add ecx, edx
mov byte [esi + eax + 0x488], cl
add eax, 1
jmp 0x40f2a2
sub esp, 8
lea eax, [esi + 0x488]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401ae0
add esp, 8
mov dword [esi + 0x104], eax
push eax
mov ebx, esp
push eax
mov edi, esp
mov dword [ebx], 0x65cc33da
mov dword [edi], ebx
mov dword [esi + 4], ebx
mov dword [esi], edi
mov eax, dword [ebx]
mov ecx, eax
sub ecx, 0x83a9456b
je 0x41363f
jmp 0x40f33d
mov ecx, eax
sub ecx, 0x846676e1
je 0x4114e0
jmp 0x40f34d
mov ecx, eax
sub ecx, 0x872bcb9d
je 0x413942
jmp 0x40f35d
mov ecx, eax
sub ecx, 0x88c778f7
je 0x412e79
jmp 0x40f36d
mov ecx, eax
sub ecx, 0x89f9ee4e
je 0x4128b4
jmp 0x40f37d
mov ecx, eax
sub ecx, 0x8a52aa7b
je 0x4136ef
jmp 0x40f38d
mov ecx, eax
sub ecx, 0x8b56b3bf
je 0x413792
jmp 0x40f39d
mov ecx, eax
sub ecx, 0x8dc79edc
je 0x411f51
jmp 0x40f3ad
mov ecx, eax
sub ecx, 0x8de924c3
je 0x4128a7
jmp 0x40f3bd
mov ecx, eax
sub ecx, 0x8e0c0b13
je 0x410f57
jmp 0x40f3cd
mov ecx, eax
sub ecx, 0x8e7b6e46
je 0x41094f
jmp 0x40f3dd
mov ecx, eax
sub ecx, 0x8ec34aa1
je 0x412943
jmp 0x40f3ed
mov ecx, eax
sub ecx, 0x8f0e43aa
je 0x412de3
jmp 0x40f3fd
mov ecx, eax
sub ecx, 0x8fb09f6c
je 0x4114d3
jmp 0x40f40d
mov ecx, eax
sub ecx, 0x90a7d9cc
je 0x4123f1
jmp 0x40f41d
mov ecx, eax
sub ecx, 0x915bc200
je 0x4149cd
jmp 0x40f42d
mov ecx, eax
sub ecx, 0x92a829e5
je 0x413fb9
jmp 0x40f43d
mov ecx, eax
sub ecx, 0x92e01f00
je 0x410f27
jmp 0x40f44d
mov ecx, eax
sub ecx, 0x93287ff5
je 0x412727
jmp 0x40f45d
mov ecx, eax
sub ecx, 0x932fb4f6
je 0x4129c2
jmp 0x40f46d
mov ecx, eax
sub ecx, 0x94fbb24e
je 0x411068
jmp 0x40f47d
mov ecx, eax
sub ecx, 0x952164aa
je 0x411230
jmp 0x40f48d
mov ecx, eax
sub ecx, 0x95306f86
je 0x41360c
jmp 0x40f49d
mov ecx, eax
sub ecx, 0x95c11623
je 0x411f00
jmp 0x40f4ad
mov ecx, eax
sub ecx, 0x96277244
je 0x410782
jmp 0x40f4bd
mov ecx, eax
sub ecx, 0x968db5f9
je 0x412b73
jmp 0x40f4cd
mov ecx, eax
sub ecx, 0x975dacf7
je 0x413f81
jmp 0x40f4dd
mov ecx, eax
sub ecx, 0x98d77054
je 0x41462e
jmp 0x40f4ed
mov ecx, eax
sub ecx, 0x993a9b98
je 0x4142e2
jmp 0x40f4fd
mov ecx, eax
sub ecx, 0x9a6a52c4
je 0x41118e
jmp 0x40f50d
mov ecx, eax
sub ecx, 0x9b0f897a
je 0x413930
jmp 0x40f51d
mov ecx, eax
sub ecx, 0x9ba1f174
je 0x41142c
jmp 0x40f52d
mov ecx, eax
sub ecx, 0x9c96162d
je 0x41137f
jmp 0x40f53d
mov ecx, eax
sub ecx, 0x9d86c874
je 0x41084f
jmp 0x40f54d
mov ecx, eax
sub ecx, 0x9e08fe8c
je 0x412487
jmp 0x40f55d
mov ecx, eax
sub ecx, 0x9e5ffdc9
je 0x412610
jmp 0x40f56d
mov ecx, eax
sub ecx, 0x9fdc690e
je 0x41401b
jmp 0x40f57d
mov ecx, eax
sub ecx, 0xa0c89985
je 0x4142c4
jmp 0x40f58d
mov ecx, eax
sub ecx, 0xa33eefc5
je 0x41140e
jmp 0x40f59d
mov ecx, eax
sub ecx, 0xa387097c
je 0x4123c9
jmp 0x40f5ad
mov ecx, eax
sub ecx, 0xa43c8441
je 0x411a2c
jmp 0x40f5bd
mov ecx, eax
sub ecx, 0xa53e490f
je 0x413556
jmp 0x40f5cd
mov ecx, eax
sub ecx, 0xa6538d41
je 0x413f49
jmp 0x40f5dd
mov ecx, eax
sub ecx, 0xa6afc757
je 0x411075
jmp 0x40f5ed
mov ecx, eax
sub ecx, 0xa87c755a
je 0x412784
jmp 0x40f5fd
mov ecx, eax
sub ecx, 0xaa3f1cd8
je 0x414644
jmp 0x40f60d
mov ecx, eax
sub ecx, 0xaa4e0d40
je 0x411eda
jmp 0x40f61d
mov ecx, eax
sub ecx, 0xaaf268bc
je 0x4128e5
jmp 0x40f62d
mov ecx, eax
sub ecx, 0xabc0f812
je 0x41299c
jmp 0x40f63d
mov ecx, eax
sub ecx, 0xaea412a7
je 0x413fa7
jmp 0x40f64d
mov ecx, eax
sub ecx, 0xb0128f70
je 0x4113db
jmp 0x40f65d
mov ecx, eax
sub ecx, 0xb07d03c3
je 0x412881
jmp 0x40f66d
mov ecx, eax
sub ecx, 0xb0956b20
je 0x4130b7
jmp 0x40f67d
mov ecx, eax
sub ecx, 0xb0d534db
je 0x410453
jmp 0x40f68d
mov ecx, eax
sub ecx, 0xb102f34d
je 0x41403f
jmp 0x40f69d
mov ecx, eax
sub ecx, 0xb3570e51
je 0x410f76
jmp 0x40f6ad
mov ecx, eax
sub ecx, 0xb3846296
je 0x4100fb
jmp 0x40f6bd
mov ecx, eax
sub ecx, 0xb51c7cfe
je 0x411473
jmp 0x40f6cd
mov ecx, eax
sub ecx, 0xb9b50f8f
je 0x4141de
jmp 0x40f6dd
mov ecx, eax
sub ecx, 0xbb2c4829
je 0x412b0b
jmp 0x40f6ed
mov ecx, eax
sub ecx, 0xbb413b0b
je 0x41124f
jmp 0x40f6fd
mov ecx, eax
sub ecx, 0xbc96ecd9
je 0x411391
jmp 0x40f70d
mov ecx, eax
sub ecx, 0xbdbd208b
je 0x4137c3
jmp 0x40f71d
mov ecx, eax
sub ecx, 0xbe3a44f8
je 0x411117
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x71ecc976
mov dword [esi + 0x378], 0
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov al, byte [esi + 0x204]
mov byte [esi + 0x220], al
mov byte [esi + 0x478], 0xfc
mov byte [esi + 0x479], 0x4f
mov eax, 2
mov byte [esi + eax + 0x478], 0
add eax, 1
cmp eax, 7
jne 0x410472
xor eax, eax
cmp eax, 7
jae 0x410544
mov ecx, eax
movzx edi, byte [esi + ecx + 0x478]
mov eax, ecx
mov ebx, ecx
mov dword [esi + 0x368], ebx
add eax, 0x1961206d
mov ecx, edi
and ecx, 0x91
xor ecx, 0xeb606c91
mov edx, edi
add edx, 1
xor edi, 0xffffffff
or edi, 0x149f936e
add edi, edx
mov edx, 0x669edf92
sub edx, ebx
and edx, 0x63000800
and eax, 0x88606491
or edx, eax
mov eax, 0x69edf92
sub eax, ebx
mov ebx, 0x69edf92
sub ebx, dword [esi + 0x368]
and eax, ebx
mov ebx, edi
xor ebx, 0xffffffff
mov dword [esi + 0x364], ecx
and dword [esi + 0x364], ebx
mov ebx, ecx
xor ebx, edi
add ecx, ebx
sub ecx, dword [esi + 0x364]
and eax, 0x149f936e
or eax, 0xb400890
xor edx, eax
xor edx, ecx
xor edx, 0x97bfff6f
mov eax, edx
and eax, 1
or edx, 1
add edx, 0xde
add eax, edx
mov ecx, dword [esi + 0x368]
mov byte [esi + ecx + 0x478], al
add ecx, 1
mov eax, ecx
jmp 0x410484
mov eax, dword [esi + 8]
lea ecx, [esi + 0x478]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call fcn.00401f10
add esp, 0xc
mov ecx, 0x46489495
cmp eax, 0
jne 0x410576
mov ecx, 0xeb95d975
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], ecx
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov al, byte [esi + 0x1fc]
mov byte [esi + 0x238], al
mov byte [esi + 0x468], 0x7c
mov byte [esi + 0x469], 0x11
mov eax, 2
mov byte [esi + eax + 0x468], 0
add eax, 1
cmp eax, 7
jne 0x4107a1
xor eax, eax
cmp eax, 7
jae 0x4107f8
movzx ecx, byte [esi + eax + 0x468]
mov edi, eax
add edi, 0xf0dc4d84
xor edi, ecx
mov ecx, edi
add ecx, 0x4bb27c6b
mov edx, ecx
and edx, 1
and edi, 1
xor edi, 1
or edx, edi
or ecx, 1
mov edi, edx
shl edi, 1
xor ecx, edx
add ecx, edi
mov edi, dword [esi]
mov byte [esi + eax + 0x468], cl
add eax, 1
jmp 0x4107b3
mov eax, dword [esi + 8]
lea ecx, [esi + 0x468]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401f10
add esp, 0xc
mov dword [esi + 0x4fc], eax
mov eax, dword [edi]
mov dword [eax], 0x40e4d5e1
jmp 0x414a2d
mov eax, 0x175f2ff9
test byte [esi + 0x45], 1
jne 0x41085f
mov eax, 0xeb95d975
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0x58da0e8a
jmp 0x414a2d
mov eax, dword [esi + 0x58]
sub esp, 4
mov dword [esp], eax
call fcn.004088f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x37e84b18
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0xc678b6c8
jmp 0x414a2d
mov eax, dword [esi + 0x1dc]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x410f92
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004088e0
add esp, 4
mov dword [esi + 0xcc], eax
mov eax, dword [0x4510e0]
mov dword [esi + 0x494], eax
mov ecx, dword [esi + 0x1dc]
mov edx, dword [esi + 0xcc]
mov edi, dword [esi + 0x58]
mov ebx, dword [esi + 0x10c]
xor eax, eax
lea eax, [esi + 0x1dc]
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 + 0x494]
mov ecx, 0xbbb8e90
cmp eax, 0
jge 0x411001
mov ecx, 0xd0016cc6
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], ecx
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0xa6afc757
jmp 0x414a2d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x846676e1
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [esi + 0x37c]
mov dword [esi + 0x110], eax
mov eax, dword [esi + 0x3c0]
sub esp, 4
mov dword [esp], eax
call fcn.00402030
add esp, 4
mov ecx, 0xe0e9feb
cmp dword [esi + 0x110], eax
jb 0x4111c0
mov ecx, 0x6928277d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], ecx
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0x7148e454
jmp 0x414a2d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xb0128f70
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xbc96ecd9
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [esi + 0xd4]
sub esp, 4
mov dword [esp], eax
call fcn.004088f0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xc52923a4
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xdd7dec51
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x9a6a52c4
mov eax, dword [esi + 0x504]
mov dword [esi + 0x37c], eax
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xfa00ae1b
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x7518215e
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0x846676e1
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0x657a25bd
jmp 0x414a2d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xf85d993e
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [esi + 0x118]
sub esp, 4
mov dword [esp], eax
call fcn.004088f0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x95c11623
mov ebx, dword [esi + 4]
jmp 0x414a2d
lea ecx, [esi + 0x538]
sub esp, 4
mov dword [esp], 0x1000
call fcn.0043eb10
mov ecx, 0x38c7380a
cmp eax, 0
jge 0x411f24
mov ecx, 0x42f86bb1
mov eax, dword [edi]
mov dword [eax], ecx
jmp 0x414a2d
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x538]
mov dword [esi + 0x4d0], eax
mov al, byte [esi + 0x298]
mov byte [esi + 0x314], al
mov byte [esi + 0x29c], 0x1d
mov byte [esi + 0x29d], 0x1a
mov byte [esi + 0x29e], 0x1b
mov byte [esi + 0x29f], 0x18
mov eax, 4
mov byte [esi + eax + 0x29c], 0
add eax, 1
cmp eax, 8
jne 0x411f91
xor eax, eax
cmp eax, 8
jae 0x411fc5
mov cl, byte [esi + eax + 0x29c]
mov dl, al
add dl, 0x7b
xor dl, cl
add dl, 0x99
mov byte [esi + eax + 0x29c], dl
add eax, 1
jmp 0x411fa3
mov eax, dword [esi + 0x29c]
mov dword [esi + 0x100], eax
xor edi, edi
mov ecx, 2
cmp edi, dword [0x4510e4]
jb 0x411fe5
jmp 0x412071
mov edx, dword [0x4510e8]
cmp dword [edx + edi*8], 0xfc36c0a1
sete bl
xor ecx, ecx
mov byte [esi + 0x41], bl
test bl, 1
jne 0x412001
jmp 0x412061
mov edx, dword [edx + edi*8 + 4]
mov ecx, 2
cmp edx, dword [esi + 0x100]
je 0x412061
mov eax, dword [0x4510ec]
xor ecx, ecx
lea ecx, [esi + 0x28]
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x4d0]
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.004414e0
add esp, 0x20
mov ecx, 1
test byte [esi + 0x41], 1
je 0x412069
jmp 0x412071
add edi, 1
jmp 0x411fd3
cmp ecx, 2
mov edi, dword [esi]
je 0x41207e
mov dword [esi + 0x100], eax
mov al, byte [esi + 0x24]
mov byte [esi + 0x2a8], al
mov byte [esi + 0x50], 0xe4
mov byte [esi + 0x51], 0xe1
mov byte [esi + 0x52], 0xe2
mov byte [esi + 0x53], 0xa3
mov eax, 4
mov byte [esi + eax + 0x50], 0
add eax, 1
cmp eax, 5
jne 0x41209c
xor eax, eax
cmp eax, 5
jae 0x4120e3
movzx edx, byte [esi + eax + 0x50]
mov ecx, eax
add ecx, 0x28
mov edi, edx
xor edi, 0xffffffff
and ecx, edi
mov ebx, 0xd7
sub ebx, eax
mov edi, 0xd7
sub edi, eax
or ebx, edi
mov edi, dword [esi]
and ebx, edx
or ebx, ecx
add bl, 0x38
mov byte [esi + eax + 0x50], bl
add eax, 1
jmp 0x4120ab
mov eax, dword [esi + 0x100]
cmp eax, dword [esi + 0x50]
sete al
and al, 1
mov byte [esi + 0x47], al
mov eax, dword [edi]
mov dword [eax], 0x764fa40b
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [esi + 0xdc]
mov eax, dword [eax]
cmp dword [esi + 0xe0], eax
setae al
and al, 1
mov byte [esi + 0x49], al
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x90a7d9cc
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, 0x356a77cd
test byte [esi + 0x49], 1
jne 0x412401
mov eax, 0x9e08fe8c
mov ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 0x3e4]
mov dword [esi + 0x384], eax
jmp 0x414a2d
mov edi, dword [esi + 0x384]
mov eax, dword [esi + 0xdc]
mov eax, dword [eax]
xor eax, 0xffffffff
add edi, eax
add edi, 1
sar edi, 1
mov ecx, dword [esi + 0x3e0]
mov eax, edi
and eax, ecx
mov edx, edi
or edx, ecx
add eax, edx
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4124c8
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004088e0
add esp, 4
mov dword [esi + 0xe4], eax
mov eax, dword [esi + 0xdc]
mov eax, dword [eax]
mov ecx, dword [esi + 0xe4]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.004196c0
add esp, 0xc
mov ecx, dword [esi + 0x11c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a3c0
add esp, 8
mov dword [esi + 0x518], eax
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x2c5c02e4
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [esi + 0x3dc]
sub esp, 4
mov dword [esp], eax
call fcn.00419620
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 0x412646
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004088e0
add esp, 4
mov dword [esi + 0x124], eax
mov eax, dword [esi + 0x124]
mov ecx, dword [esi + 0x3dc]
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.0040aec0
add esp, 0x10
lea ecx, [esi + 0x558]
sub esp, 4
mov dword [esp], 1
call fcn.00409430
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x72271151
mov dword [esi + 0x388], 0
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0xaaf268bc
jmp 0x414a2d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x89f9ee4e
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [esi + 0x130]
sub esp, 4
mov dword [esp], eax
call fcn.004088f0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x8de924c3
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0x89f9ee4e
jmp 0x414a2d
mov eax, dword [esi + 0x128]
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov dword [esi + 0x51c], eax
mov eax, dword [edi]
mov dword [eax], 0x72271151
mov eax, dword [esi + 0x51c]
mov dword [esi + 0x388], eax
jmp 0x414a2d
mov eax, dword [esi + 0x124]
sub esp, 4
mov dword [esp], eax
call fcn.004088f0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x44d69630
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0xbff6008b
jmp 0x414a2d
mov eax, dword [esi + 0xd8]
sub esp, 4
mov dword [esp], eax
call fcn.0043e810
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x932fb4f6
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0x20087d71
jmp 0x414a2d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x66a0fb30
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0x19722cc6
jmp 0x414a2d
mov al, byte [esi + 0x18]
mov byte [esi + 0x2dc], al
mov byte [esi + 0x88], 0xe6
mov byte [esi + 0x89], 0x71
mov eax, 2
mov byte [esi + eax + 0x88], 0
add eax, 1
cmp eax, 5
jne 0x412dff
xor eax, eax
cmp eax, 5
jae 0x412e3c
mov cl, byte [esi + eax + 0x88]
mov dl, al
add dl, 0xec
xor dl, cl
add dl, 0x64
mov byte [esi + eax + 0x88], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x412e11
mov eax, dword [esi + 8]
lea ecx, [esi + 0x88]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401880
add esp, 8
mov dword [esi + 0x14c], eax
cmp dword [esi + 0x14c], 0
setne al
and al, 1
mov byte [esi + 0x4b], al
mov eax, dword [edi]
mov dword [eax], 0x88c778f7
jmp 0x414a2d
mov eax, 0x14c02523
test byte [esi + 0x4b], 1
jne 0x412e89
mov eax, 0xd4b4b354
mov ecx, dword [edi]
mov dword [ecx], eax
mov dword [esi + 0x390], 0
jmp 0x414a2d
mov edi, dword [esi + 0x394]
mov ecx, edi
call fcn.00419790
add edi, 0xc
mov dword [esi + 0x3f0], edi
mov ecx, dword [esi + 0x3f0]
mov eax, 0xf8ff5b27
cmp ecx, dword [esi + 0x524]
je 0x4130e5
mov eax, 0xb0956b20
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 0x3f0]
mov dword [esi + 0x394], eax
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [esi + 0x60]
add eax, 0xfffffffc
mov dword [esi + 0x3f4], eax
mov eax, dword [esi + 0x3f4]
mov eax, dword [eax]
imul eax, eax, 0xc
add eax, dword [esi + 0x60]
mov dword [esi + 0x3f8], eax
mov eax, dword [esi + 0x3f8]
cmp dword [esi + 0x60], eax
sete al
and al, 1
mov byte [esi + 0x4c], al
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x3c4bd5ec
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [esi + 0x3f4]
sub esp, 4
mov dword [esp], eax
call fcn.004088f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0xeef6185f
jmp 0x414a2d
mov eax, dword [esi + 0x140]
sub esp, 4
mov dword [esp], eax
call fcn.004088f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0xf57162f3
jmp 0x414a2d
mov eax, 0x184da35d
test byte [esi + 0x4d], 1
jne 0x4136ff
mov eax, 0x13ebfc20
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0x2c3a17cb
jmp 0x414a2d
mov al, byte [esi + 0x174]
mov byte [esi + 0x2f4], al
mov byte [esi + 0x84], 0x34
mov byte [esi + 0x85], 0x87
mov eax, 2
mov byte [esi + eax + 0x84], 0
add eax, 1
cmp eax, 4
jne 0x4137e2
xor ecx, ecx
cmp ecx, 4
jae 0x413848
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x62813e32
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [edi]
mov dword [eax], 0x66db9422
jmp 0x414a2d
mov eax, dword [esi + 0x400]
sub esp, 4
mov dword [esp], eax
call fcn.004088f0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xc7749b36
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [esi + 0x15c]
sub esp, 4
mov dword [esp], eax
call fcn.004088f0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xaea412a7
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x92a829e5
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [esi + 0x160]
sub esp, 4
mov dword [esp], eax
call fcn.004088f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0xf01f21d5
jmp 0x414a2d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xf85d993e
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov eax, dword [esi + 0x108]
add eax, 1
mov dword [esi + 0x534], eax
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x715cd5ac
mov ebx, dword [esi + 4]
jmp 0x414a2d
mov edi, dword [esi + 0x3d4]
sar edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4141fe
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004088e0
add esp, 4
mov dword [esi + 0x49c], eax
mov edx, dword [esi + 0xd0]
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040aec0
add esp, 0x10
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0xcc]
mov dl, byte [esi + 0x13]
mov edi, dword [esi + 0x3cc]
mov ebx, dword [esi + 0x3c8]
sub esp, 0x1c
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov edi, dword [esi + 0x49c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
lea eax, [esi + 0x5e0]
mov dword [esp], eax
movzx eax, dl
and eax, 1
mov dword [esp + 0x18], eax
call fcn.00424bd0
add esp, 0x1c
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xae623fb
mov ebx, dword [esi + 4]
jmp 0x414a2d
ljmp 0x5b7c:0x89a4edcc
xor bh, byte [eax]
and dword [ebp + 0x35], ebx
out 0xf3, al
movsb byte es:[edi], byte [esi]
mov eax, dword [esi + 0x78]
sub esp, 4
mov dword [esp], eax
call fcn.004088f0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xfa00ae1b
mov ebx, dword [esi + 4]
jmp 0x414a2d
xor al, 0x20
mov word [ebp - 0x75], cs
mov eax, dword ds:[edi]
mov dword [eax], 0xa387097c
mov ebx, dword [esi + 4]
jmp 0x414a2d
xor al, 0xdd
or edx, dword [ebx]
sti
dec ebx
clc
cmp ebp, ebx
rcl dword [ecx - 0x52], 0xdb
jp 0x414671
mov ebx, esi
inc ebx
insb byte es:[edi], dx
mov eax, dword [esi + 0x114]
sub esp, 4
mov dword [esp], eax
call fcn.00402030
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x43f85739
add byte [ecx], bh
push edi
clc
inc ebx
mov ebx, dword [esi + 4]
jmp 0x414a2d
xchg ecx, eax
sbb cl, byte [ebx + ebp*4]
mov eax, dword [esi + 0xf0]
sub esp, 4
mov dword [esp], eax
call fcn.00402030
add esp, 4
mov edi, eax
mov ecx, 8
mov eax, edi
mul ecx
add eax, 4
setb cl
xor edx, edx
mov ecx, 0xffffffff
test dl, 1
jne 0x414a04
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004088e0
add esp, 4
mov dword [eax], edi
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xd72837db
jmp 0x414a2d
jmp 0x40f32b