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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf0
mov dword [esp + 8], 0x2165277b
mov dword [esp + 0xc], 0x5db223b0
mov dword [esp + 0x10], 0x593d5f20
mov dword [esp + 0x14], 0x55395bd4
mov dword [esp + 0x18], 0x5156570b
lea eax, [esp + 0x1c]
mov word [esp + 0x1c], 0
mov byte [esp + 0x1e], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x39
xor dl, byte [esp + ecx + 8]
add dl, 0xe3
mov byte [esp + ecx + 8], dl
inc ecx
cmp ecx, 0x17
jne 0x429a40
lea esi, [esp + 0xaa]
lea edx, [esp + 8]
mov ecx, 5
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xbe]
xor ebx, ebx
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x5c]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x44dee0]
mov dword [esp + 8], 0x539291f3
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
add cl, 0x24
xor cl, byte [esp + ebx + 8]
add cl, 0x4c
mov byte [esp + ebx + 8], cl
inc ebx
cmp ebx, 7
jne case.default.0x429ad1
xor ecx, ecx
cmp eax, dword [esp + 8]
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x448eb4]
mov ebx, dword [esp + 0x5c]
test ebx, ebx
jns 0x429ae7
mov eax, 0xffffffff
jmp 0x429aea
lea eax, [ebx + ebx]
push eax
call fcn.00408580
add esp, 4
push edi
push ebx
mov dword [esp + 0x44], eax
push eax
push 9
push esi
push 0
call dword [0x44dee0]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x448ebc]
xor eax, eax
jmp dword [0x448ec4]
push dword [esp + 0x3c]
call fcn.00408590
add esp, 4
mov ecx, dword [case.0x429ad1.0]
xor eax, eax
nop
nop
nop
jmp ecx
mov dword [esp + 8], 0x43ab4184
mov dword [esp + 0xc], 0x47a545d7
mov dword [esp + 0x10], 0x4bd849a7
mov dword [esp + 0x14], 0x4f4e4da8
xor eax, eax
mov ecx, 0xe6c25ef
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 8]
mov edi, ecx
and edi, 0x86825ad
mov ebx, eax
and ebx, 2
lea edx, [ebx + edi]
add edi, ebx
add edi, 0x10
mov ebx, esi
xor ebx, 0xad
and ebx, edi
xor esi, 0x42
xor edx, 0xef
and edx, esi
or edx, ebx
mov bl, 0xaf
sub bl, dl
mov byte [esp + eax + 8], bl
inc eax
dec ecx
cmp eax, 0x10
jne 0x429b60
lea ebp, [esp + 0x9a]
lea eax, [esp + 8]
mov edi, ebp
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xaa]
lea eax, [esp + 0x18]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 8], 0xe945eba0
mov dword [esp + 0xc], 0xed4bef7d
mov dword [esp + 0x10], 0xd144d37d
mov dword [esp + 0x14], 0xd593d774
mov dword [esp + 0x18], 0xd948db73
mov dword [esp + 0x1c], 0xdd48df7f
mov dword [esp + 0x20], 0xc1c2c343
lea esi, [esp + 0x24]
mov byte [esp + 0x24], 0
mov ecx, 0x86396fd7
mov edx, 0x79c69028
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x79c69031]
mov edi, ecx
and edi, ebx
add edi, edi
sub edi, ebx
add edi, edx
and edi, ecx
add edi, edi
lea eax, [edx - 0x79c69000]
and eax, edi
xor edi, ecx
add eax, eax
not eax
add eax, edi
add al, bl
add al, 0xce
mov byte [esp + ecx + 0x79c69031], al
inc ecx
dec edx
cmp ecx, 0x86396ff4
jne 0x429c20
lea edx, [esp + 0xd4]
lea eax, [esp + 8]
mov edi, edx
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xf0]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 8], 0x73db71bc
mov dword [esp + 0xc], 0x7fdd7dcf
mov dword [esp + 0x10], 0x7bc879cf
mov dword [esp + 0x14], 0x479645e8
mov dword [esp + 0x18], 0x4380419c
lea ebx, [esp + 0x1c]
mov dword [esp + 0x1c], 0x4d4c
mov ecx, 0x14
mov esi, 0xeb
nop
movzx eax, byte [esp + ecx - 0xc]
lea edi, [eax + eax]
not edi
add edi, eax
and edi, ecx
and eax, esi
or eax, edi
add al, 0x9c
mov byte [esp + ecx - 0xc], al
inc ecx
dec esi
cmp ecx, 0x2c
jne case.default.0x429d3c
lea esi, [esp + 0xbe]
lea eax, [esp + 8]
mov edi, esi
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xd2]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], esi
mov eax, dword [esp + 0x3c]
add eax, 2
mov dword [esp + 0x64], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x48], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x448edc]
jmp dword [0x448ef0]
jmp dword [0x448ef4]
push dword [esp + 0x3c]
call fcn.00408590
add esp, 4
mov eax, dword [esp + 0x48]
and al, 1
add esp, 0xf0
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x80]
add ecx, 4
xor eax, eax
cmp ecx, 0xc
setne al
jmp dword [eax*4 + 0x448edc]
mov dword [esp + 0x80], ecx
mov esi, dword [esp + ecx + 0x8c]
mov edi, 0xfffffffe
nop
nop
nop
nop
cmp word [esi + edi + 2], 0
lea edi, [edi + 2]
jne 0x429db0
mov edx, edi
sar edx, 1
mov eax, dword [esp + 0x5c]
lea ecx, [edx + eax]
mov dword [esp + 0x4c], edx
add edx, eax
add edx, 0xd
lea eax, [ecx*2 + 0x1a]
test edx, edx
jns 0x429ddf
mov eax, 0xffffffff
mov dword [esp + 0x44], esi
push eax
call fcn.00408580
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x3c]
movzx ecx, word [eax]
mov eax, esi
test cx, cx
je 0x429e21
mov edx, dword [esp + 0x64]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x429e10
mov word [eax], 0x5c
mov dword [esp + 8], 0x790e7b18
mov dword [esp + 0xc], 0x650b67e9
mov dword [esp + 0x10], 0x61f6630b
mov dword [esp + 0x14], 0x6d136f40
mov dword [esp + 0x18], 0x69056bf0
mov dword [esp + 0x1c], 0x95fd97f4
mov word [esp + 0x20], 0x9394
lea ecx, [esp + 8]
mov byte [ecx + 0x1c], 0
mov word [ecx + 0x1a], 0
mov ecx, 0x8bf70c6b
movzx edx, byte [esp + ecx + 0x7408f39d]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0xe9
mov byte [esp + ecx + 0x7408f39d], dl
inc ecx
cmp ecx, 0x8bf70c88
jne 0x429e70
add eax, 2
mov ebx, dword [esp + 0x44]
movzx ecx, word [ebx]
test cx, cx
je 0x429ec1
lea edx, [ebx + 2]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x429eb0
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x429ef1
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x429ee0
mov word [eax], 0
lea eax, [esp + 0x58]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.00441030
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x448efc]
xor eax, eax
jmp dword [0x448f5c]
push esi
mov esi, eax
call fcn.00408590
add esp, 4
mov eax, esi
movzx eax, al
jmp dword [eax*4 + 0x448f64]
lea eax, [esp + 0x54]
push 0
push eax
push dword [esp + 0x60]
call fcn.004413b0
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp], 0
mov dword [esp + 0x68], esi
jmp dword [eax*4 + 0x448f04]
mov esi, dword [esp + 0x54]
lea eax, [esi + 1]
push eax
call fcn.00408580
add esp, 4
mov ebx, eax
push 0
push esi
push eax
push dword [esp + 0x64]
call fcn.00441480
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp], 0
jmp dword [eax*4 + 0x448f0c]
jmp dword [0x448f14]
jmp dword [0x448f84]
jmp dword [0x448f90]
push esi
call fcn.00408590
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00408590
add esp, 4
jmp dword [0x448f98]
push esi
call fcn.00408590
add esp, 4
push 0xa7ffa4f5
push dword [0x44ded8]
call fcn.00440630
add esp, 8
push dword [esp + 0x74]
call eax
jmp dword [0x448f3c]
push dword [esp + 0x40]
call fcn.00408590
add esp, 4
push dword [esp + 0x7c]
call fcn.00401bf0
add esp, 4
mov eax, dword [case.0x429d3c.11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp], 0
jmp dword [ecx*4 + 0x448f24]
jmp dword [0x448f54]
push ebx
call fcn.00408590
add esp, 4
mov eax, dword [esp + 0x58]
mov dword [esp + 8], 0xc0d0a0b
lea ecx, [esp + 8]
mov byte [ecx + 6], 0
mov word [ecx + 4], 0
mov ecx, 2
mov edx, 0xeb40efd
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 6]
mov ebx, edx
or ebx, esi
not esi
or esi, ecx
and esi, ebx
mov ebx, 0xf4
sub ebx, esi
and esi, 1
or ebx, 1
add ebx, esi
mov byte [esp + ecx + 6], bl
inc ecx
dec edx
cmp ecx, 9
jne 0x42a080
mov ecx, dword [0x44dee4]
test ecx, ecx
je 0x42a0e0
mov edx, dword [esp + 8]
xor esi, esi
mov ebx, dword [0x44dee8]
nop
cmp dword [ebx + esi*8], 0x1b6183f2
je 0x42a0d0
inc esi
cmp ecx, esi
jne 0x42a0c0
jmp 0x42a0e0
mov ecx, dword [ebx + esi*8 + 4]
cmp ecx, edx
jne 0x42a3a6
nop
nop
nop
nop
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x68]
mov eax, dword [esp]
jmp dword [0x448f5c]
movzx eax, al
jmp dword [eax*4 + 0x448f64]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x4c]
lea ecx, [edx + eax]
add edx, eax
add edx, 0x17
lea eax, [ecx*2 + 0x2e]
test edx, edx
jns 0x42a11b
mov eax, 0xffffffff
push eax
call fcn.00408580
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x3c]
movzx ecx, word [eax]
mov eax, esi
test cx, cx
je 0x42a151
mov edx, dword [esp + 0x64]
mov eax, esi
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42a140
mov word [eax], 0x5c
mov dword [esp + 8], 0xfd209e4
mov dword [esp + 0xc], 0x3e50dff
mov dword [esp + 0x10], 0x7fa01e1
mov dword [esp + 0x14], 0x1bcd0524
mov dword [esp + 0x18], 0x1fed19ec
mov dword [esp + 0x1c], 0x13f31dea
mov dword [esp + 0x20], 0x17f311eb
mov dword [esp + 0x24], 0x2bd615f8
mov dword [esp + 0x28], 0x2fa429cd
mov dword [esp + 0x2c], 0x23de2dc9
mov dword [esp + 0x30], 0x27c021c4
mov word [esp + 0x34], 0x2524
lea ecx, [esp + 8]
mov word [ecx + 0x32], 0
mov dword [ecx + 0x2e], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xc2
xor dl, byte [esp + ecx + 8]
add dl, 0x36
mov byte [esp + ecx + 8], dl
inc ecx
cmp ecx, 0x34
jne 0x42a1d0
add eax, 2
movzx ecx, word [ebx]
test cx, cx
je 0x42a211
lea edx, [ebx + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42a200
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x42a241
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42a230
mov word [eax], 0
add edi, 0x12
cmp dword [esp + 0x4c], 0xfffffff7
jge 0x42a255
mov edi, 0xffffffff
push edi
call fcn.00408580
add esp, 4
mov edi, eax
mov dword [esp + 8], 0x49de4b9d
mov dword [esp + 0xc], 0x45cc47d3
mov dword [esp + 0x10], 0x41d643df
mov dword [esp + 0x14], 0x7de07fdc
mov word [esp + 0x18], 0x7b7c
lea eax, [esp + 8]
mov word [eax + 0x16], 0
mov dword [eax + 0x12], 0
mov eax, 0xfff86393
nop
nop
nop
movzx ecx, byte [esp + eax + 0x79c75]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x21
mov byte [esp + eax + 0x79c75], cl
inc eax
cmp eax, 0xfff863ab
jne 0x42a2a0
movzx ecx, word [ebx]
mov eax, edi
test cx, cx
je 0x42a2f1
add ebx, 2
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x42a2e0
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x42a321
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42a310
mov word [eax], 0
mov dword [esp + 8], 0xcfcec916
mov word [esp + 0xc], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
xor ebx, 0x4e
mov edx, eax
and edx, 2
sub edx, ebx
xor dl, byte [esp + ecx + 8]
add dl, 0x86
mov byte [esp + ecx + 8], dl
inc ecx
add eax, 2
cmp ecx, 6
jne 0x42a340
push 0
push 0
push 0xc00000
lea eax, [esp + 0x14]
push eax
push esi
push edi
push dword [esp + 0x11c]
call fcn.00422c90
add esp, 0x1c
mov ecx, dword [esp + 0x48]
and cl, 1
or cl, al
mov dword [esp + 0x48], ecx
jmp dword [0x448f6c]
push edi
call fcn.00408590
add esp, 4
nop
nop
nop
nop
nop
jmp dword [0x448f80]
push eax
push 4
push ecx
push dword [0x44deec]
call fcn.0043e980
add esp, 0x10
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x68]
mov eax, dword [esp]
jmp dword [0x448f5c]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x7c], eax
push eax
call fcn.00401980
add esp, 4
mov dword [esp + 8], 0x546b465d
mov dword [esp + 0xc], 0x49564046
mov dword [esp + 0x10], 0x5c505816
mov dword [esp + 0x14], 0x312e384e
mov dword [esp + 0x18], 0x2c1b2727
mov word [esp + 0x1c], 0x3023
mov byte [esp + 0x1e], 0xb6
lea ecx, [esp + 8]
mov byte [ecx + 0x1b], 0
mov dword [ecx + 0x17], 0
xor ebx, ebx
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebx + 8]
mov esi, ebp
and esi, 0x26
mov ecx, ebx
xor ecx, 0xfc64f3b3
add ecx, esi
mov esi, edx
and esi, ecx
add esi, esi
sub ecx, esi
add cl, dl
add cl, 0x81
mov byte [esp + ebx + 8], cl
inc ebx
add ebp, 2
cmp ebx, 0x1c
jne 0x42a430
lea ecx, [esp + 8]
push ecx
push eax
call fcn.00401ac0
add esp, 8
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x42a480
mov dword [esp + 4], ecx
mov edx, dword [esp + 4]
and edx, 0xfffffffc
mov ecx, dword [esp + 4]
and ecx, 3
mov esi, dword [esp + 4]
or esi, 3
imul esi, ecx
xor ecx, 3
imul ecx, edx
mov edx, dword [esp + 4]
add esi, ecx
shr esi, 2
movzx ecx, byte [eax + edx - 1]
cmp ecx, 0x3d
je 0x42a4c4
cmp ecx, 0x2e
jne 0x42a4cb
mov ecx, esi
not ecx
lea esi, [ecx + esi*2]
movzx ecx, byte [eax + edx - 2]
cmp ecx, 0x3d
mov dword [esp + 0x50], eax
je 0x42a4de
cmp ecx, 0x2e
jne 0x42a4df
dec esi
mov dword [esp + 0x78], esi
lea eax, [esi + 1]
push eax
call fcn.00408580
add esp, 4
mov dword [esp + 0x40], eax
cmp dword [esp + 4], 0
je 0x42a5eb
xor ebp, ebp
mov esi, 2
jmp 0x42a523
lea eax, [esi + 4]
add esi, 2
mov ebp, dword [esp]
cmp esi, edx
mov esi, eax
jae 0x42a5eb
mov ebx, dword [esp + 0x50]
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.0041f3a0
add esp, 4
mov byte [esp], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.0041f3a0
mov edx, dword [esp + 8]
add esp, 4
mov bh, al
movzx ecx, byte [esp]
shl cl, 2
shr al, 4
and al, 3
or al, cl
lea ecx, [ebp + 1]
mov dword [esp], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x6c], ebp
mov byte [ecx + ebp], al
cmp esi, edx
jae 0x42a510
mov eax, dword [esp + 0x50]
movzx eax, byte [eax + esi]
push eax
call fcn.0041f3a0
mov edx, dword [esp + 8]
add esp, 4
cmp al, 0x40
je 0x42a510
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov ebp, dword [esp + 0x6c]
lea ecx, [ebp + 2]
mov dword [esp], ecx
mov ecx, dword [esp + 0x40]
mov byte [ecx + ebp + 1], al
lea eax, [esi + 1]
cmp eax, edx
jae 0x42a510
mov eax, dword [esp + 0x50]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.0041f3a0
mov edx, dword [esp + 8]
add esp, 4
cmp al, 0x40
je 0x42a510
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x6c]
mov byte [ecx + ebx + 2], al
add ebx, 3
mov dword [esp], ebx
jmp 0x42a510
mov ecx, dword [esp + 0x78]
mov eax, ecx
not eax
and eax, 5
and ecx, 0xfffffffa
sub ecx, eax
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x40]
add eax, 5
mov dword [esp + 0x88], eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
push 0xe18a387a
push dword [0x44def0]
call fcn.00440630
add esp, 8
lea ecx, [esp + 0x70]
lea edx, [esp + 0x84]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x448f2c]
mov dword [esp], 0
mov ebx, dword [esp + 0x60]
jmp dword [0x448f3c]
lea eax, [edi + 0x10]
cmp dword [esp + 0x4c], 0xfffffff8
jge 0x42a67a
mov eax, 0xffffffff
push eax
call fcn.00408580
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 8], 0x13ae1167
mov dword [esp + 0xc], 0x6f186ddc
mov dword [esp + 0x10], 0x6be269e4
mov dword [esp + 0x14], 0x676665e8
mov word [esp + 0x18], 0
xor edx, edx
movzx eax, byte [esp + edx + 8]
mov dword [esp], eax
lea ecx, [edx + edx]
mov ebx, ecx
and ebx, 0x38
mov esi, edx
xor esi, 0xa275713c
add esi, ebx
mov ebx, esi
and ebx, eax
mov eax, ebx
and eax, 0x7d
mov ebp, ebx
or ebp, 0xfffffffd
inc ebp
imul ebp, eax
mov eax, ebx
and eax, 2
or ebx, 2
imul ebx, eax
sub ebp, ebx
add esi, dword [esp]
lea eax, [esi + ebp]
add eax, 0xd3b4c9d3
mov esi, eax
and esi, 1
xor eax, 1
lea eax, [eax + esi*2]
mov byte [esp + edx + 8], al
and ecx, 2
mov eax, ecx
and eax, edx
or ecx, edx
xor ecx, 1
add ecx, eax
mov edx, ecx
cmp ecx, 0x12
jb 0x42a6b0
mov edx, dword [esp + 0x44]
movzx ecx, word [edx]
mov esi, dword [esp + 4]
mov eax, esi
test cx, cx
je 0x42a741
add edx, 2
mov eax, esi
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42a730
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
mov ebx, dword [esp + 0x60]
je 0x42a771
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42a760
mov word [eax], 0
mov ecx, dword [esp + 0x104]
push dword [esp + 0x70]
push dword [esp + 0x78]
push esi
call fcn.00409120
mov dword [esp], eax
jmp dword [0x448f34]
mov eax, dword [esp + 0x54]
mov byte [ebx + eax], 0
push ebx
call fcn.00401000
add esp, 4
mov eax, dword [esp + 0x54]
mov byte [ebx + eax], 0
push ebx
call fcn.00401000
add esp, 4
jmp dword [0x448f1c]