Function at 0x423d9e
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov esi, edx
mov edi, ecx
call fcn.00459af0
test eax, eax
je 0x428201
mov ebx, eax
mov dword [esp + 0x28], esi
lea eax, [0x478585]
lea esi, [esp + 0xc]
mov ebp, edx
mov dword [esi], eax
mov eax, dword [esi]
mov ecx, dword [0x48f01c]
mov edx, ecx
shr edx, 6
xor edx, ecx
imul ecx, edx, 0x5abe80ac
mov edx, ecx
shr edx, 0x19
xor edx, ecx
mov ecx, 0xde07d3e1
sub ecx, edx
rol ecx, 2
movzx edx, cx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x21
xor cl, 0x5f
mov byte [esi + 2], cl
mov word [esi], ax
mov ecx, ebx
push 3
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4769e4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f020]
mov edx, ecx
shr edx, 3
xor edx, ecx
mov ecx, 0x4a340cf0
rol edx, 7
sub ecx, edx
rol ecx, 7
movzx edx, cx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov dword [esp + 0x24], edi
mov edi, esp
mov edx, ebp
xor eax, 0xc4a1
xor cl, 0xdf
mov byte [edi + 2], cl
mov word [edi], ax
mov ecx, ebx
push 3
push edi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x471fbe]
mov edx, 0xe7460fde
mov dword [esp], eax
mov eax, dword [esp]
imul ecx, dword [0x48f024], 0xd3dfbe61
xor ecx, 0x56000196
rol ecx, 7
movzx ecx, cx
xor edx, dword [eax + ecx]
mov al, byte [eax + ecx + 4]
mov ecx, ebx
add al, 0x80
mov dword [esp + 0xc], edx
mov edx, ebp
mov byte [esp + 0x10], al
push 5
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46b0f1]
mov ecx, 0xcd9309ff
mov edx, 0xaddfc2ba
mov dword [esp], eax
mov eax, dword [esp]
sub ecx, dword [0x48f028]
rol ecx, 4
imul ecx, ecx, 0x8e0c6a85
not ecx
rol ecx, 1
movzx ecx, cx
xor edx, dword [eax + ecx]
mov al, byte [eax + ecx + 4]
mov ecx, ebx
xor al, 0xbe
mov dword [esp + 0xc], edx
mov edx, ebp
mov byte [esp + 0x10], al
push 5
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46bdae]
mov dword [esp], eax
mov eax, dword [esp]
imul ecx, dword [0x48f02c], 0x48c83526
not ecx
mov edx, ecx
shr edx, 0x1c
xor edx, ecx
rol edx, 1
movzx ecx, dx
mov edx, 0xe922bef0
xor edx, dword [eax + ecx]
mov al, byte [eax + ecx + 4]
mov ecx, ebx
xor al, 0x4e
mov dword [esp + 0xc], edx
mov edx, ebp
mov byte [esp + 0x10], al
push 5
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x472d7d]
mov edx, 0x5987a635
mov dword [esp], eax
mov eax, dword [esp]
imul ecx, dword [0x48f030], 0x172694b8
xor ecx, 0xc25a86f9
imul ecx, ecx, 0xa6eb82f9
add ecx, 0x9573ce8b
rol ecx, 2
and ecx, 0xfff3
xor edx, dword [eax + ecx]
mov al, byte [eax + ecx + 4]
mov ecx, ebx
xor al, 0x35
mov dword [esp + 0xc], edx
mov edx, ebp
mov byte [esp + 0x10], al
push 5
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46f694]
mov ecx, 0x161fe744
mov edx, 0x316f987
mov dword [esp], eax
mov eax, dword [esp]
xor ecx, dword [0x48f034]
imul ecx, ecx, 0xbe9ec1f
rol ecx, 3
movzx ecx, cx
xor edx, dword [eax + ecx]
mov al, byte [eax + ecx + 4]
mov ecx, ebx
xor al, 0x14
mov dword [esp + 0xc], edx
mov edx, ebp
mov byte [esp + 0x10], al
push 5
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46bad7]
mov ecx, 0xe92a25c2
mov edx, 0x82a9a306
mov dword [esp], eax
mov eax, dword [esp]
xor ecx, dword [0x48f038]
inc ecx
xor ecx, 0x7a024bdc
imul ecx, ecx, 0xf22e1942
rol ecx, 2
and ecx, 0xfffb
xor edx, dword [eax + ecx]
mov al, byte [eax + ecx + 4]
mov ecx, ebx
xor al, 0x22
mov dword [esp + 0xc], edx
mov edx, ebp
mov byte [esp + 0x10], al
push 5
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x479a34]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
imul ecx, dword [0x48f03c], 0x59baca2a
not ecx
mov edx, ecx
shr edx, 0xc
xor edx, ecx
mov ecx, edx
shr ecx, 0xa
xor ecx, edx
rol ecx, 2
movzx edx, cx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x6c91
xor cl, 0x5d
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea edi, [esp + 4]
push edi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x475c3f]
mov ecx, 0x75ff296f
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
xor ecx, dword [0x48f040]
inc ecx
mov edx, ecx
shr edx, 7
xor edx, ecx
imul ecx, edx, 0xc202391
rol ecx, 2
movzx edx, cx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0xfd4c
xor cl, 0xaa
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
push edi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46f362]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f044]
mov edx, eax
shr edx, 0x13
xor edx, eax
xor edx, 0x9c000175
rol edx, 6
movzx edx, dx
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x97d4
xor al, 0xc3
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
push edi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46faa0]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f048]
mov edx, ecx
shr edx, 0x18
xor edx, ecx
xor edx, 0x523fdb20
imul edx, edx, 0x50f8202a
add edx, 0xc449bf28
rol edx, 6
and edx, 0xffbf
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x450c
xor cl, 0x90
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
push edi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46a41b]
mov dword [esp + 0xc], eax
mov eax, 0xc3b596d4
mov ecx, dword [esp + 0xc]
xor eax, dword [str.o1Jb]
rol eax, 1
imul edx, eax, 0xdb65b7aa
add edx, 0x6cbfc5da
rol edx, 6
and edx, 0xffbf
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x6781
xor al, 0x64
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
push edi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4702ac]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f050]
rol eax, 5
imul edx, eax, 0xdbb2dae
rol edx, 4
and edx, 0xffef
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xa256
xor al, 0xb6
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
push edi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4729a2]
mov dword [esp + 0xc], eax
mov eax, 0x3a877c8c
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f054]
rol eax, 7
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x7088
xor al, 0x29
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4750da]
mov dword [esp + 0xc], eax
mov eax, 0xdbbc252c
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f058]
xor eax, 0x10000d82
rol eax, 4
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xb64c
xor al, 0xca
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4721bc]
mov ecx, 0xeee5b88b
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
xor ecx, dword [0x48f05c]
mov edx, ecx
shr edx, 0xa
xor edx, ecx
mov ecx, 0x8f7a515d
rol edx, 2
sub ecx, edx
rol ecx, 5
movzx edx, cx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x829c
xor cl, 0x9e
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x47011c]
mov dword [esp + 0xc], eax
mov eax, 0x9ffbb9e2
mov ecx, dword [esp + 0xc]
xor eax, dword [0x48f060]
imul eax, eax, 0xdc48b1eb
add eax, 0x2b684f7b
xor eax, 0x800003d8
rol eax, 3
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xb896
xor al, 0xe3
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4725f4]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul edx, dword [0x48f064], 0xc9f2533e
add edx, 0x9d2b6f54
rol edx, 1
and edx, 0xfffd
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x251d
xor al, 0x3a
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x474277]
mov ecx, 0xc91dac63
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add ecx, dword [0x48f068]
mov edx, ecx
shr edx, 0x14
xor edx, ecx
add edx, 0x9a06d287
rol edx, 6
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x48b1
xor cl, 0x6a
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46f94b]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f06c]
mov edx, ecx
shr edx, 0x13
xor edx, ecx
mov ecx, 0x9653f545
rol edx, 1
sub ecx, edx
rol ecx, 6
movzx edx, cx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0xbdf4
xor cl, 0x6b
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46b737]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f070]
mov edx, eax
shr edx, 0x19
xor edx, eax
mov eax, 0xa301da0b
sub eax, edx
rol eax, 2
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xa626
xor al, 0x35
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4700c0]
mov edx, 0x455b3018
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f074]
rol ecx, 2
sub edx, ecx
xor edx, 0x6790783e
inc edx
rol edx, 6
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x4a8c
xor cl, 0xae
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x470701]
mov ecx, 0x11d33d4e
mov dword [esp], eax
mov eax, dword [esp]
add ecx, dword [0x48f078]
mov edx, ecx
shr edx, 0x14
xor edx, ecx
xor edx, 0x73056e96
mov ecx, edx
shr ecx, 0x17
xor ecx, edx
mov edx, 0x10663ca
rol ecx, 1
movzx ecx, cx
xor edx, dword [eax + ecx]
movzx eax, word [eax + ecx + 4]
mov ecx, ebx
xor eax, 0xebd5
mov dword [esp + 0xc], edx
mov edx, ebp
mov word [esp + 0x10], ax
push 6
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x473e71]
mov dword [esp + 0xc], eax
mov eax, 0x80003e63
mov ecx, dword [esp + 0xc]
xor eax, dword [0x48f07c]
rol eax, 1
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x7b5b
xor al, 0x4d
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x470a85]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [str.m_M7_]
mov edx, ecx
shr edx, 0x18
xor edx, ecx
add edx, 0xadbce88d
rol edx, 1
movzx ecx, dx
xor edx, edx
add ecx, eax
mov al, 1
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
movzx eax, byte [edx + 0x479bd8]
mov ecx, edx
mov edi, edx
or ecx, 2
or edi, 3
movzx ecx, byte [ecx + 0x479bd8]
movzx edi, byte [edi + 0x479bd8]
mov dword [esp + 0x20], eax
mov eax, edx
or eax, 1
movzx eax, byte [eax + 0x479bd8]
shl ecx, 0x10
shl edi, 0x18
shl eax, 8
add eax, dword [esp + 0x20]
or eax, ecx
or eax, edi
mov edi, dword [esp + 0x1c]
xor eax, dword [edi + edx]
test byte [esp + 0x18], 1
mov dword [esp + 0x18], 0
mov dword [esp + edx + 0xc], eax
mov edx, 4
jne 0x4246de
mov eax, dword [esp + 0x1c]
mov ecx, ebx
mov edx, ebp
movzx eax, word [eax + 8]
movsd xmm0, qword [esp + 0xc]
xor eax, 0x8214
movsd qword [esp], xmm0
mov word [esp + 8], ax
push 0xa
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x473c74]
xor edx, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
imul ecx, dword [0x48f084], 0xe4b48c9b
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edx
add ecx, 0x71e46ebf
rol ecx, 4
movzx ecx, cx
add ecx, eax
mov al, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
movzx eax, byte [edx + 0x479be2]
mov edi, edx
mov ecx, edx
or edi, 2
or ecx, 3
movzx edi, byte [edi + 0x479be2]
movzx ecx, byte [ecx + 0x479be2]
mov dword [esp + 0x20], eax
mov eax, edx
or eax, 1
movzx eax, byte [eax + 0x479be2]
shl edi, 0x10
shl ecx, 0x18
shl eax, 8
add eax, dword [esp + 0x20]
or eax, edi
mov edi, dword [esp + 0x1c]
or eax, ecx
xor eax, dword [edi + edx]
test byte [esp + 0x18], 1
mov dword [esp + 0x18], 0
mov dword [esp + edx + 0xc], eax
mov edx, 4
jne 0x4247af
movsd xmm0, qword [esp + 0xc]
mov ecx, ebx
mov edx, ebp
movsd qword [esp], xmm0
push 8
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46d375]
mov ecx, 0x6c8736cb
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
xor ecx, dword [0x48f088]
rol ecx, 5
xor ecx, 0x2fb70f1b
mov edx, ecx
shr edx, 0xb
xor edx, ecx
rol edx, 6
movzx ecx, dx
mov edx, ebp
movzx eax, word [eax + ecx]
mov ecx, ebx
xor eax, 0x418d
mov word [esp], ax
push 2
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x476597]
mov ecx, 0x3e0078dd
mov edx, 0xa0aec6da
mov dword [esp], eax
mov eax, dword [esp]
sub ecx, dword [0x48f08c]
imul ecx, ecx, 0x11fb32ae
add ecx, 0x8c2d34e2
rol ecx, 3
and ecx, 0xfff7
xor edx, dword [eax + ecx]
movzx eax, word [eax + ecx + 4]
mov ecx, ebx
xor eax, 0xe6e0
mov dword [esp + 0xc], edx
mov edx, ebp
mov word [esp + 0x10], ax
push 6
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46d0d1]
mov edx, 0x7479dd96
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, dword [0x48f090]
not ecx
rol ecx, 6
sub edx, ecx
rol edx, 4
movzx ecx, dx
mov edx, 0x75d0e00e
xor edx, dword [eax + ecx]
movzx eax, word [eax + ecx + 4]
mov ecx, ebx
xor eax, 0x8826
mov dword [esp + 0xc], edx
mov edx, ebp
mov word [esp + 0x10], ax
push 6
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46d561]
mov dword [esp + 0xc], eax
mov eax, 0x16c9ecc2
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f094]
rol eax, 8
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xcc08
xor al, 0xcf
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46f6ec]
mov dword [esp + 0xc], eax
mov eax, 0x69e26fc5
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f098]
xor eax, 0x381ebd8b
inc eax
rol eax, 4
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x590f
xor al, 0x2a
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x479920]
mov dword [esp + 0xc], eax
mov eax, 0x5e4877bb
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f09c]
xor eax, 0x3b7e
rol eax, 1
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x2bcb
xor al, 0x93
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x479abf]
mov dword [esp + 0xc], eax
mov eax, 0x7eb63259
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f0a0]
rol eax, 3
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x2369
xor al, 0x46
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46f031]
mov dword [esp + 0xc], eax
mov eax, 0xebfaf875
mov ecx, dword [esp + 0xc]
xor eax, dword [0x48f0a4]
add eax, 0x52e468e5
xor eax, 0x8000118d
rol eax, 1
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x656
xor al, 0xdd
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x47009f]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul eax, dword [0x48f0a8], 0xfe2638c2
mov edx, eax
shr edx, 0x17
xor edx, eax
neg edx
rol edx, 1
movzx edx, dx
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x6fea
xor al, 0x57
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4763d0]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f0ac]
rol eax, 1
xor eax, 0x4f3d
rol eax, 1
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xbc70
xor al, 0x7e
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4759b6]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f0b0]
mov edx, ecx
shr edx, 0x16
xor edx, ecx
mov ecx, edx
shr ecx, 1
xor ecx, edx
dec ecx
rol ecx, 5
movzx edx, cx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x7f3e
xor cl, 0x5c
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46ecc4]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f0b4]
mov edx, eax
shr edx, 0x16
xor edx, eax
xor edx, 0x80004e18
rol edx, 1
movzx edx, dx
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x2f56
xor al, 0xa3
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x470e24]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
imul ecx, dword [0x48f0b8], 0x61a5e819
not ecx
mov edx, ecx
shr edx, 0x18
xor edx, ecx
add edx, 0x7c9a5a34
rol edx, 5
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0xa123
xor cl, 0x79
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x477fbc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f0bc]
mov edx, ecx
shr edx, 1
xor edx, ecx
rol edx, 6
xor edx, 0x80006f88
rol edx, 1
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0xae48
add cl, 0x80
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46fd63]
mov ecx, 0xeb404f84
mov edx, 0xd942d02e
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
sub ecx, dword [0x48f0c0]
rol ecx, 7
movzx ecx, cx
xor edx, dword [eax + ecx]
mov ecx, ebx
mov dword [esp], edx
mov edx, ebp
push 4
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x477442]
mov dword [esp + 0xc], eax
mov eax, 0xf1de1b18
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f0c4]
rol eax, 3
xor eax, 0x80001f55
rol eax, 1
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xc8e8
xor al, 0x7d
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4773da]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul eax, dword [0x48f0c8], 0x1712f354
rol eax, 1
dec eax
rol eax, 2
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xb8ee
xor al, 0xc5
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x47163c]
mov dword [esp + 0xc], eax
mov eax, 0xf2d2a849
mov ecx, dword [esp + 0xc]
xor eax, dword [0x48f0cc]
add eax, 0xc82a20a1
rol eax, 1
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x7706
xor al, 0xcf
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46cdc6]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f0d0]
not eax
imul edx, eax, 0x17d3db78
add edx, 0x25808a45
rol edx, 7
and edx, 0xfeff
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x29c1
xor al, 0xf7
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x473735]
mov edx, 0xb3f1a84a
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f0d4]
rol ecx, 1
not ecx
rol ecx, 1
imul ecx, ecx, 0x65c31968
rol ecx, 1
and ecx, 0xfff1
xor edx, dword [eax + ecx]
mov ecx, ebx
mov dword [esp], edx
mov edx, ebp
push 4
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46e2c1]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f0d8]
rol eax, 7
add eax, 0x3b0c3491
rol eax, 5
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x5872
xor al, 8
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46ee0f]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f0dc]
mov edx, eax
shr edx, 0xc
xor edx, eax
xor edx, 0xb0000765
rol edx, 4
movzx edx, dx
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xfd74
xor al, 0xb6
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x479529]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f0e0]
mov edx, ecx
shr edx, 8
xor edx, ecx
mov ecx, 0x83279ae3
sub ecx, edx
xor ecx, 0x9c800011
rol ecx, 9
movzx edx, cx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0xb3a4
xor cl, 0xe
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4757ab]
mov dword [esp + 0xc], eax
mov eax, 0x77c057a5
mov ecx, dword [esp + 0xc]
xor eax, dword [0x48f0e4]
add eax, 0xc2216fb9
rol eax, 2
imul eax, eax, 0xdf6f6bb3
rol eax, 1
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x2f8
xor al, 0x14
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x473b62]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
imul ecx, dword [0x48f0e8], 0xb3cb7553
mov edx, ecx
shr edx, 0xf
xor edx, ecx
xor edx, 0x52000056
rol edx, 7
movzx ecx, dx
mov edx, 0xa831a6b1
xor edx, dword [eax + ecx]
mov ecx, ebx
mov dword [esp], edx
mov edx, ebp
push 4
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46dac3]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul eax, dword [0x48f0ec], 0xb204ef5
mov edx, eax
shr edx, 0xb
xor edx, eax
xor edx, 0x8000719b
rol edx, 1
movzx edx, dx
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x47d4
xor al, 0xba
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x473b83]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul edx, dword [0x48f0f0], 0x3b5908e8
add edx, 0xf37db842
rol edx, 7
and edx, 0xfd7f
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xc62f
xor al, 0xc7
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46dc59]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul eax, dword [0x48f0f4], 0x9adfb7c6
add eax, 0xd629fd3
rol eax, 2
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x57a1
xor al, 0x8e
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4774ee]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f0f8]
not eax
imul edx, eax, 0x711ebc0e
add edx, 0xa3dd0828
rol edx, 1
and edx, 0xfffd
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xde16
xor al, 0x32
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x47419e]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f0fc]
mov edx, ecx
shr edx, 0xf
xor edx, ecx
not edx
mov ecx, edx
shr ecx, 2
xor ecx, edx
mov edx, 0x241a8ea2
sub edx, ecx
rol edx, 3
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x50ad
xor cl, 0x6a
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46cf45]
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, dword [0x48f100]
mov edx, ecx
shr edx, 0x12
xor edx, ecx
add edx, 0x63f05c6
rol edx, 7
movzx ecx, dx
mov edx, 0x4ecc96c8
xor edx, dword [eax + ecx]
mov al, byte [eax + ecx + 4]
mov ecx, ebx
xor al, 0x82
mov dword [esp + 0xc], edx
mov edx, ebp
mov byte [esp + 0x10], al
push 5
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x47250e]
mov edx, 0x1d77ddf8
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, dword [0x48f104]
not ecx
imul ecx, ecx, 0xc5eb205c
xor ecx, 0x8c00004f
rol ecx, 7
movzx ecx, cx
xor edx, dword [eax + ecx]
mov al, byte [eax + ecx + 4]
mov ecx, ebx
xor al, 0x1c
mov dword [esp + 0xc], edx
mov edx, ebp
mov byte [esp + 0x10], al
push 5
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x478c92]
mov ecx, 0x1fd71ad1
mov edx, 0xd26125f6
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
xor ecx, dword [0x48f108]
rol ecx, 6
sub edx, ecx
xor edx, 0x2fa9
rol edx, 1
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x4abe
xor cl, 0x68
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46ef75]
mov dword [esp + 0xc], eax
mov eax, 0x640728bc
mov ecx, dword [esp + 0xc]
xor eax, dword [0x48f10c]
imul eax, eax, 0xbe4efd7d
rol eax, 2
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x5607
xor al, 0xa0
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46ad4c]
mov ecx, 0x60c68abf
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
sub ecx, dword [0x48f110]
mov edx, ecx
shr edx, 0x15
xor edx, ecx
xor edx, 0x1f7
rol edx, 6
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x64db
xor cl, 0x36
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x47090b]
mov dword [esp + 0xc], eax
mov eax, 0x1a902198
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f114]
xor eax, 0x80000534
rol eax, 5
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x7cdc
xor al, 0x23
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46fe7e]
xor ecx, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
sub ecx, dword [0x48f118]
mov edx, ecx
shr edx, 0x1a
xor edx, ecx
add edx, 0xe5b2b7bb
rol edx, 5
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x8b8b
xor cl, 0x20
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46e584]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul edx, dword [0x48f11c], 0xed99b0ea
add edx, 0xc0e8354
rol edx, 1
and edx, 0xfffd
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xa802
xor al, 0xc1
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4797f8]
mov dword [esp + 0xc], eax
mov eax, 0x29ca8c9c
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f120]
xor eax, 0x80001222
rol eax, 2
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x5ca9
xor al, 0xf4
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x479693]
mov dword [esp + 0xc], eax
mov eax, 0x43fc1d9c
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f124]
xor eax, 0xe40002ce
rol eax, 6
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x2b4
xor al, 0x33
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46b6c5]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f128]
not ecx
mov edx, ecx
shr edx, 0x1f
xor edx, ecx
mov ecx, 0x826c2118
sub ecx, edx
mov edx, 0xeb603fbb
rol ecx, 2
movzx ecx, cx
xor edx, dword [eax + ecx]
mov ecx, ebx
mov dword [esp], edx
mov edx, ebp
push 4
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4762fe]
mov dword [esp + 0xc], eax
mov eax, 0xb7f67c35
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f12c]
imul eax, eax, 0xf6810d15
add eax, 0x49313e8
rol eax, 4
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x55be
xor al, 0xf8
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46c408]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f130]
rol ecx, 1
mov edx, ecx
shr edx, 0x11
xor edx, ecx
imul edx, edx, 0x1cc35a86
xor edx, 0x80004a80
rol edx, 1
and edx, 0xfffd
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x27e
xor cl, 0x4f
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x478bb7]
mov dword [esp + 0xc], eax
mov eax, 0x3b5f7171
mov ecx, dword [esp + 0xc]
sub eax, dword [str.u4B8]
xor eax, 0xcd388396
imul edx, eax, 0xaf0720da
rol edx, 6
and edx, 0xffbf
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x1bf8
xor al, 0x62
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x47189e]
mov ecx, 0xf79b0140
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
sub ecx, dword [0x48f138]
mov edx, ecx
shr edx, 6
xor edx, ecx
rol edx, 6
movzx ecx, dx
mov edx, ebp
movzx eax, word [eax + ecx]
mov ecx, ebx
xor eax, 0x75b7
mov word [esp], ax
push 2
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x470172]
mov dword [esp + 0xc], eax
mov eax, 0xf0b42d2f
mov ecx, dword [esp + 0xc]
xor eax, dword [0x48f13c]
add eax, 0x94a76961
rol eax, 1
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xa799
xor al, 0x47
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46a8e7]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f140]
not eax
imul eax, eax, 0xe4a4efbd
add eax, 0xd8ffd777
xor eax, 0x80000e21
rol eax, 1
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xe51c
xor al, 0x49
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x470cd2]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
imul ecx, dword [0x48f144], 0x15b02f49
add ecx, 0xf340fdcb
mov edx, ecx
shr edx, 0x15
xor edx, ecx
rol edx, 1
movzx ecx, dx
mov edx, 0xd0a6049b
xor edx, dword [eax + ecx]
mov ecx, ebx
mov dword [esp], edx
mov edx, ebp
push 4
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46b062]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f148]
not eax
rol eax, 3
imul edx, eax, 0xa5e8650a
rol edx, 6
and edx, 0xffbf
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x2ee0
xor al, 0xb6
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x472800]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul edx, dword [0x48f14c], 0x6dee5264
add edx, 0xfae2f68f
xor edx, 0x38878754
add edx, 0x64331fb2
rol edx, 2
and edx, 0xfff7
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x177a
xor al, 0x14
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46a4bd]
mov edx, 0xeee1244b
mov dword [esp + 0xc], eax
mov eax, 0x3da001b0
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f150]
rol eax, 2
sub edx, eax
rol edx, 2
movzx edx, dx
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xf753
xor al, 0x43
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x475557]
mov dword [esp + 0xc], eax
mov eax, 0x36fe6849
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f154]
rol eax, 7
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x3027
xor al, 0xda
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x472dd8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f158]
mov edx, ecx
shr edx, 7
xor edx, ecx
xor edx, 0x738a3632
inc edx
rol edx, 6
movzx ecx, dx
mov edx, 0x9110ac2f
xor edx, dword [eax + ecx]
mov ecx, ebx
mov dword [esp], edx
mov edx, ebp
push 4
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46f97f]
mov ecx, 0x4a054423
mov dword [esp], eax
mov eax, dword [esp]
add ecx, dword [0x48f15c]
mov edx, ecx
shr edx, 0x1a
xor edx, ecx
rol edx, 1
not edx
rol edx, 2
movzx ecx, dx
mov edx, 0xbd5c497f
xor edx, dword [eax + ecx]
mov al, byte [eax + ecx + 4]
mov ecx, ebx
xor al, 0x86
mov dword [esp + 0xc], edx
mov edx, ebp
mov byte [esp + 0x10], al
push 5
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46ce5a]
mov edx, 0x4471fb97
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, dword [0x48f160]
rol ecx, 3
neg ecx
rol ecx, 0xa
movzx ecx, cx
xor edx, dword [eax + ecx]
mov al, byte [eax + ecx + 4]
mov ecx, ebx
xor al, 0xd6
mov dword [esp + 0xc], edx
mov edx, ebp
mov byte [esp + 0x10], al
push 5
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46da08]
mov dword [esp + 0xc], eax
mov eax, 0x6210acc9
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f164]
rol eax, 7
not eax
imul eax, eax, 0xe011f791
rol eax, 2
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x48b0
xor al, 0xa6
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x472696]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f168]
mov edx, ecx
shr edx, 0xc
xor edx, ecx
mov ecx, edx
shr ecx, 0xd
xor ecx, edx
imul ecx, ecx, 0x4722c730
mov edx, ecx
shr edx, 0x11
xor edx, ecx
rol edx, 4
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x3a9
xor cl, 0xe1
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x471672]
mov dword [esp + 0xc], eax
mov eax, 0x94d34f95
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f16c]
xor eax, 0x2ae8
rol eax, 1
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x8663
xor al, 0x9c
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x478692]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [str._xM_l]
rol eax, 5
xor eax, 0x28000773
rol eax, 5
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x1786
xor al, 0xc8
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x472cb1]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul eax, dword [0x48f174], 0x967e9f8d
xor eax, 0xc0000b62
rol eax, 2
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x4a32
xor al, 0x82
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46beb4]
mov dword [esp + 0xc], eax
mov eax, 0x33ad79cf
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f178]
rol eax, 2
imul edx, eax, 0x21d89a7c
rol edx, 1
and edx, 0xfff9
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x6655
xor al, 0xa3
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x473595]
mov dword [esp + 0xc], eax
mov eax, 0x94a17a32
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f17c]
rol eax, 1
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x86cb
xor al, 0x9c
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46d6d2]
mov dword [esp + 0xc], eax
mov eax, 0x87205e70
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f180]
xor eax, 0xa8000306
rol eax, 5
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x7ea8
xor al, 0x86
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46fde0]
mov dword [esp + 0xc], eax
mov eax, 0x438cce2b
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f184]
xor eax, 0xec000013
rol eax, 7
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x5ad9
xor al, 0x1d
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x477ed6]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul eax, dword [0x48f188], 0xa745a099
add eax, 0x2a916497
mov edx, eax
shr edx, 0x18
xor edx, eax
rol edx, 2
movzx edx, dx
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x7d62
xor al, 0x32
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x476365]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f18c]
rol ecx, 1
mov edx, ecx
shr edx, 0x1c
xor edx, ecx
rol edx, 4
xor edx, 0xf4000157
rol edx, 7
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0xfe3c
xor cl, 0x6e
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x472dc9]
mov edx, 0xcb20a25d
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f190]
rol eax, 3
sub edx, eax
rol edx, 1
movzx edx, dx
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x1515
xor al, 0x20
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x475f0a]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f194]
mov edx, eax
shr edx, 2
xor edx, eax
imul eax, edx, 0xa2cac391
add eax, 0x78084a30
rol eax, 7
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xad1a
xor al, 0x96
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46b72e]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f198]
not eax
imul eax, eax, 0x532c58d
add eax, 0xd959360c
rol eax, 4
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x918a
xor al, 0xa5
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x479ac2]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f19c]
rol ecx, 5
xor ecx, 0x2ba20739
mov edx, ecx
shr edx, 0xd
xor edx, ecx
imul ecx, edx, 0xdebb078f
rol ecx, 2
movzx edx, cx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x27fc
xor cl, 0x13
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4740d5]
mov ecx, 0x924d8f95
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
sub ecx, dword [0x48f1a0]
mov edx, ecx
shr edx, 7
xor edx, ecx
add edx, 0x3e098056
rol edx, 4
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x1eec
xor cl, 0x54
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x474bb1]
mov ecx, 0x6f46ec91
mov edx, 0x2ec7ae1b
mov dword [esp], eax
mov eax, dword [esp]
add ecx, dword [0x48f1a4]
xor ecx, 0x800025ce
rol ecx, 1
movzx ecx, cx
xor edx, dword [eax + ecx]
movzx eax, word [eax + ecx + 4]
mov ecx, ebx
xor eax, 0xd0b9
mov dword [esp + 0xc], edx
mov edx, ebp
mov word [esp + 0x10], ax
push 6
push esi
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x479b81]
mov dword [esp + 0xc], eax
mov eax, 0xf0cdb71
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f1a8]
xor eax, 0x700005b9
rol eax, 5
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x2141
not al
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46e886]
mov dword [esp + 0xc], eax
mov eax, 0x29f2ee6d
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f1ac]
rol eax, 3
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x715f
xor al, 0x63
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x47458d]
mov edx, 0xe3652a42
mov dword [esp + 0xc], eax
mov eax, 0x2c2c370c
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f1b0]
rol eax, 2
sub edx, eax
rol edx, 2
movzx edx, dx
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x5f7e
xor al, 0x97
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4702ae]
mov dword [esp + 0xc], eax
mov eax, 0xcfc31091
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f1b4]
rol eax, 5
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x3a77
xor al, 0x91
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46c8ce]
mov edx, ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f1b8]
rol ecx, 2
add ecx, 0xb55df76b
rol ecx, 3
movzx ecx, cx
movzx eax, word [eax + ecx]
mov ecx, ebx
xor eax, 0x6b8d
mov word [esp], ax
push 2
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46fc8b]
mov dword [esp + 0xc], eax
mov eax, 0x9218510f
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f1bc]
rol eax, 2
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xa8d9
xor al, 0xe0
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x473b3b]
mov ecx, 0xd0ffe001
mov edx, 0xf14720ee
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
sub ecx, dword [0x48f1c0]
rol ecx, 5
movzx ecx, cx
xor edx, dword [eax + ecx]
mov ecx, ebx
mov dword [esp], edx
mov edx, ebp
push 4
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46a71b]
mov dword [esp + 0xc], eax
mov eax, 0x60001c23
mov ecx, dword [esp + 0xc]
xor eax, dword [0x48f1c4]
rol eax, 3
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x810d
xor al, 0x77
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x476c4f]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f1c8]
not ecx
mov edx, ecx
shr edx, 9
xor edx, ecx
add edx, 0xc44a00ff
rol edx, 3
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x8c7d
xor cl, 0xbd
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46aa91]
mov dword [esp + 0xc], eax
mov eax, 0x3b382c67
mov ecx, dword [esp + 0xc]
xor eax, dword [0x48f1cc]
rol eax, 3
neg eax
rol eax, 4
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x2a65
xor al, 0x45
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x479c5c]
mov dword [esp + 0xc], eax
mov eax, 0x1ada6512
mov ecx, dword [esp + 0xc]
add eax, dword [0x48f1d0]
xor eax, 0xd48b7a4d
inc eax
rol eax, 0xa
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x96e2
xor al, 0xd5
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x477d10]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f1d4]
rol ecx, 6
mov edx, ecx
shr edx, 0x1b
xor edx, ecx
xor edx, 0x780002f2
rol edx, 5
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0xcc9b
xor cl, 0x2c
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x474e7b]
mov dword [esp + 0xc], eax
mov eax, 0xab6a05e
mov ecx, dword [esp + 0xc]
xor eax, dword [0x48f1d8]
add eax, 0xe79d6bca
rol eax, 7
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x6bc4
xor al, 0x6d
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46af9a]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul eax, dword [0x48f1dc], 0xbfb4a6e8
rol eax, 3
add eax, 0x82e97074
rol eax, 6
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x9983
xor al, 0x86
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46ade5]
mov dword [esp + 0xc], eax
mov eax, 0xce58c757
mov ecx, dword [esp + 0xc]
sub eax, dword [str.2tRD_]
rol eax, 6
add eax, 0x26ab597
rol eax, 4
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x59df
xor al, 0xcb
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46e8f6]
mov ecx, 0x8e8e23ae
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
xor ecx, dword [0x48f1e4]
mov edx, ecx
shr edx, 0xe
xor edx, ecx
imul ecx, edx, 0xd889bd53
mov edx, ecx
shr edx, 0x12
xor edx, ecx
rol edx, 1
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0xd22a
xor cl, 5
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x478d4a]
mov dword [esp + 0xc], eax
mov eax, 0x71af239f
mov ecx, dword [esp + 0xc]
sub eax, dword [0x48f1e8]
xor eax, 0xe00006f9
rol eax, 4
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x6f84
xor al, 0x25
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46a5b8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [str.51:]
mov edx, ecx
shr edx, 0x17
xor edx, ecx
neg edx
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
rol ecx, 8
movzx edx, cx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0xe909
xor cl, 0x5a
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46cfa6]
mov dword [esp + 0xc], eax
mov eax, 0x7b9cd3f1
mov ecx, dword [esp + 0xc]
xor eax, dword [0x48f1f0]
imul edx, eax, 0xd4887b1c
add edx, 0x1139b844
rol edx, 2
and edx, 0xfff3
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x9074
xor al, 0x26
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x478b06]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul edx, dword [0x48f1f4], 0x5628004c
add edx, 0x654ebec8
xor edx, 0x20000ddc
rol edx, 4
and edx, 0xffcf
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xfbbe
xor al, 0x6b
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46d8ef]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
imul eax, dword [0x48f1f8], 0x4141edeb
mov edx, eax
shr edx, 0x11
xor edx, eax
mov eax, 0x57538a30
sub eax, edx
rol eax, 5
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xf54b
xor al, 0xdd
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x470dd5]
mov ecx, 0xecb48b3a
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add ecx, dword [0x48f1fc]
rol ecx, 2
mov edx, ecx
shr edx, 0x13
xor edx, ecx
rol edx, 7
movzx ecx, dx
mov edx, 0x193600e6
xor edx, dword [eax + ecx]
mov ecx, ebx
mov dword [esp], edx
mov edx, ebp
push 4
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x471b02]
mov dword [esp + 0xc], eax
mov eax, 0xfc3b257
mov ecx, dword [esp + 0xc]
xor eax, dword [0x48f200]
mov edx, eax
shr edx, 9
xor edx, eax
rol edx, 3
movzx edx, dx
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0xfa0d
xor al, 0x87
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x474a50]
mov ecx, 0xd937b395
mov edx, 0x45d07355
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
sub ecx, dword [0x48f204]
rol ecx, 5
sub edx, ecx
rol edx, 2
movzx ecx, dx
mov edx, 0xd0077912
xor edx, dword [eax + ecx]
mov ecx, ebx
mov dword [esp], edx
mov edx, ebp
push 4
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x4716ff]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [0x48f208]
rol eax, 0xa
add eax, 0x139f518e
rol eax, 2
movzx edx, ax
movzx eax, byte [ecx + edx + 2]
movzx ecx, word [ecx + edx]
mov edx, ebp
xor ecx, 0x4444
xor al, 0x5c
mov word [esp], cx
mov byte [esp + 2], al
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x46d770]
mov edx, 0x71b80dc
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f20c]
rol ecx, 7
sub edx, ecx
rol edx, 4
xor edx, 0x60000bd6
rol edx, 3
movzx edx, dx
movzx ecx, byte [eax + edx + 2]
movzx eax, word [eax + edx]
mov edx, ebp
xor eax, 0x270c
xor cl, 0xcf
mov byte [esp + 2], cl
mov word [esp], ax
mov ecx, ebx
push 3
lea eax, [esp + 4]
push eax
call fcn.00421da9
add esp, 8
test al, al
jne 0x427b23
lea eax, [0x473f04]
mov edx, 0x3ed339b4
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [0x48f210]
rol ecx, 3
sub edx, ecx
rol edx, 5
not edx
rol edx, 1
movzx ecx, dx
xor edx, edx
add ecx, eax
mov al, 1
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
movzx eax, byte [edx + 0x479bea]
mov edi, edx
mov ecx, edx
or edi, 2
or ecx, 3
movzx edi, byte [edi + 0x479bea]
movzx ecx, byte [ecx + 0x479bea]
mov dword [esp + 0x20], eax
mov eax, edx
or eax, 1
movzx eax, byte [eax + 0x479bea]
shl edi, 0x10
shl ecx, 0x18
shl eax, 8
add eax, dword [esp + 0x20]
or eax, edi
mov edi, dword [esp + 0x1c]
or eax, ecx
xor eax, dword [edi + edx]
test byte [esp + 0x18], 1
mov dword [esp + 0x18], 0
mov dword [esp + edx + 0xc], eax
mov edx, 4
jne 0x426a84
mov bl, 5
jmp 0x428246
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
cmp ecx, 0x4001
mov edx, eax
sbb edx, 0
jae 0x42821a
xor ebx, ebx
jmp 0x428246
cmp ecx, 0x500001
mov edx, eax
mov bl, 1
sbb edx, 0
jb 0x428246
cmp ecx, 0x3200001
mov edx, eax
mov bl, 2
sbb edx, 0
jb 0x428246
cmp ecx, 0xc800001
mov bl, 4
sbb eax, 0
sbb bl, 0
mov eax, ebx
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret