Function at 0x5369d2
Capabilities:
Authenticate hmac

Disassembly:
stosb byte es:[edi], al
jb 0x5369f5
add ch, ah
jb 0x5369f9
add byte [edx], cl
jae 0x5369fd
add byte [ebp + 0x73], al
inc eax
add byte [ecx + 0x73], ch
inc eax
add byte [esi - 0x4cffbf8d], cl
jae 0x536a0d
add al, bl
jae 0x536a11
add byte [ebp - 0x75], dl
in al, dx
sub esp, 0xd8c
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dl, byte [ecx]
sub dl, 2
mov dword [ebp - 0x40], eax
xor eax, eax
neg dl
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 8]
push ebx
sbb edx, edx
not edx
and edx, dword [0x46a4f8]
inc ebp
or byte [ebx + 0x1b], dl
sal bh, cl
shl byte [ebx], cl
adc eax, 0x46a4f8
shl eax, 4
mov dword [ebp - 0x60], edx
mov edx, dword [ecx + 4]
mov eax, dword [eax + edx + 0xc]
push esi
push ecx
add al, 0x8b
inc esp
adc byte [esi + edx*2], cl
push edi
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x48], 0x45a5d8
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 8], 0x38
je 0x537fd5
push 0x10
pop eax
call 0x5872de
mov esi, dword [ebp - 8]
mov ebx, esp
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 8]
cmp eax, 6
jge 0x536cb6
cmp eax, 5
jne 0x537e80
mov eax, dword [ebx + 4]
mov esi, dword [ebx]
xor edi, edi
cmp eax, edi
jne 0x536b95
mov al, byte [esi + 0x17]
test al, al
jne 0x536a73
mov eax, dword [esi + 0xc]
mov al, byte [eax + 0x17]
movzx eax, al
dec eax
je 0x536ad0
sub eax, 3
jne 0x536adf
mov eax, dword [esi + 0x10]
cmp eax, 0x408ff4
jne 0x536a9d
mov eax, dword [0x465108]
mov ecx, dword [eax + 8]
mov dword [ebx], ecx
mov eax, dword [eax + 0xc]
mov dword [ebx + 4], eax
jmp 0x53735e
cmp eax, 0x40901d
jne 0x536ab9
mov eax, dword [esi + 0x18]
cmp byte [eax + 4], 0
jne 0x537355
xor eax, eax
inc eax
jmp 0x537357
cmp eax, 0x41875b
jne 0x536adf
mov eax, dword [0x465108]
mov eax, dword [eax + 0x38]
mov dword [ebx + 4], edi
jmp 0x53735c
mov ecx, esi
call int.005313b1
test eax, eax
jne 0x537e79
push edi
mov ecx, esi
call fcn.00531af2
mov esi, eax
inc esi
cmp esi, 1
jne 0x536b0c
mov eax, dword [ebx]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x536afe
mov eax, dword [eax + 0xc]
mov cl, byte [eax + 0x17]
cmp cl, 1
je 0x537e79
jmp 0x537de0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
sub eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x18]
add eax, dword [ecx]
cmp esi, eax
ja 0x536b25
mov eax, dword [ebp - 0x40]
add dword [ebp - 0x40], esi
jmp 0x536b74
cmp esi, 0x1001
jae 0x536b4b
cmp dword [ebp - 0x58], 0x9c40
jae 0x536b4b
mov eax, esi
add eax, 3
and eax, 0xfffffffc
call 0x5872de
add dword [ebp - 0x58], esi
mov dword [ebp - 0x10], esp
jmp 0x536b77
cmp dword [ebp - 0x18], 0xc8
je 0x537ef7
push esi
call 0x56e866
cmp eax, edi
pop ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp + ecx*4 - 0x48c], eax
je 0x537ef7
inc dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
push dword [ebp - 0x10]
mov ecx, dword [ebx]
call fcn.00531af2
mov eax, dword [ebp - 0x10]
mov dword [ebx], eax
mov dword [ebx + 4], edi
mov dword [ebx + 8], 4
jmp 0x537e80
xor edi, edi
mov dword [ebx], 0x45a5d8
mov dword [ebx + 8], edi
cmp dword [esi], edi
mov dword [ebp - 0xc], eax
je 0x536c1b
jmp 0x536bbf
cmp edi, 0xfd
jge 0x536bcb
mov cl, byte [eax]
mov byte [ebp + edi - 0x16c], cl
inc edi
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [esi]
jb 0x536ba9
cmp edi, 0xfd
jl 0x536bcf
cmp eax, dword [esi]
jb 0x536c37
mov ecx, dword [esi + 4]
push 0
call fcn.00531af2
mov ecx, 0xfd
sub ecx, edi
cmp eax, ecx
ja 0x536c37
mov ecx, dword [esi + 4]
lea eax, [ebp + edi - 0x16c]
push eax
call fcn.00531af2
add edi, eax
movzx eax, word [esi + 0xa]
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
add esi, 0xc
cmp dword [esi], 0
jne 0x536bbf
jmp 0x536c1b
cmp edi, 0xfd
jge 0x536c29
mov byte [ebp + edi - 0x16c], cl
inc edi
inc eax
mov cl, byte [eax]
test cl, cl
jne 0x536c0a
cmp edi, 0xfd
jl 0x536c2e
cmp byte [eax], 0
jne 0x536c37
test edi, edi
jne 0x536c4b
jmp 0x536c37
add esi, 0xc
cmp dword [esi], 0
jne 0x536c34
cmp byte [esi + 8], 0
jne 0x538039
jmp 0x537e80
mov byte [ebp + edi - 0x16c], 0
cmp byte [esi + 8], 0
mov ecx, 0x467ce0
lea eax, [ebp - 0x16c]
invalid
je 0x536c88
push edi
push eax
call 0x57d9a9
test eax, eax
mov dword [esi + 4], eax
je 0x538039
movzx ecx, byte [esi + 9]
cmp ecx, dword [eax + 0x10]
jl 0x538039
jmp 0x537eeb
push 0
push 3
push edi
push eax
call fcn.0053b501
test eax, eax
je 0x538125
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x536ca8
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 1
jne 0x537e80
jmp 0x537d05
cmp eax, 0x37
jne 0x5371f7
mov eax, dword [ebx]
movzx edi, byte [eax + 9]
cmp edi, dword [ebp - 4]
mov esi, dword [eax + 4]
mov dword [ebp - 0xc], esi
jg 0x538039
sub dword [ebp - 4], edi
cmp byte [esi + 0x31], 0
je 0x536e26
mov dword [ebx + 8], 1
mov eax, dword [esi]
mov dword [ebx], eax
lea eax, [ebp - 0x16c]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0xc]
and dword [ebx + 0xc], 0
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 4]
lea eax, [ebp + eax*4 - 0xc8c]
push edi
push eax
push ebx
mov dword [ebp - 0x2c], eax
call dword [esi + 4]
add esp, 0xc
cmp dword [ebp - 4], 0
jne 0x536d3a
mov eax, dword [ebp - 8]
cmp dword [eax + 0x18], 0x38
jne 0x536d3a
cmp dword [ebp - 0x60], 0
mov dword [ebp - 0x1c], 1
je 0x536d3e
mov dword [ebp - 0x64], 1
jmp 0x536d42
and dword [ebp - 0x1c], 0
and dword [ebp - 0x64], 0
mov edx, dword [ebx + 0xc]
xor edi, edi
inc edi
test edx, edx
je 0x536dd5
cmp edx, dword [ebx]
jne 0x536dbb
cmp dword [ebp - 0x64], 0
jne 0x537f02
mov eax, dword [ebp - 8]
cmp dword [eax + 0x18], 0xc
jne 0x536db9
cmp dword [ebp - 4], 0
je 0x536db9
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax - 4]
cmp dword [eax + 8], 3
jne 0x536db9
mov eax, dword [eax]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x536d88
mov eax, dword [eax + 0xc]
mov cl, byte [eax + 0x17]
cmp cl, 1
jne 0x536db9
dec dword [ebp - 4]
mov eax, dword [ebp - 4]
push dword [ebx + 4]
mov esi, dword [ebp + eax*4 - 0xc8c]
mov ecx, dword [esi]
push edx
call fcn.0053bb2e
add dword [ebp - 8], 0x10
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [esi]
jmp 0x537d05
xor edi, edi
cmp dword [ebp - 0x18], 0xc8
je 0x537f29
mov eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x48c], edx
mov eax, dword [ebp - 0x34]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
cmp eax, 1
je 0x537e80
cmp eax, 2
je 0x537e80
xor ecx, ecx
cmp dword [ebp - 0x64], ecx
jne 0x537f15
mov eax, dword [ebx]
cmp byte [eax], cl
jne 0x536e0c
mov dword [ebx], 0x45a5d8
jmp 0x537e80
cmp edi, ecx
mov dword [ebp - 0x10], eax
je 0x537129
xor eax, eax
cmp dword [ebp - 0x1c], ecx
sete al
mov edi, eax
jmp 0x537129
mov eax, dword [esi + 0xc]
cmp edi, eax
mov dword [ebp - 0x1c], eax
jg 0x536e33
mov dword [ebp - 0x1c], edi
cmp dword [esi + 0x28], 0
jle 0x536eaf
mov eax, dword [ebp - 0x1c]
test eax, eax
jle 0x536e96
mov ecx, dword [ebp - 4]
and dword [ebp - 0x38], 0
lea ecx, [ebp + ecx*4 - 0xc8c]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x34]
mov esi, dword [eax]
cmp dword [esi + 8], 3
jne 0x536e86
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0x38]
cmp word [eax + ecx + 4], 0
jne 0x536e86
mov ecx, dword [esi]
push 1
call fcn.0053126f
and dword [esi + 4], 0
mov dword [esi], eax
mov dword [esi + 8], 4
add dword [ebp - 0x34], 4
add dword [ebp - 0x38], 0x10
dec dword [ebp - 0x2c]
jne 0x536e54
mov esi, dword [ebp - 0xc]
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x44]
push eax
push esi
call fcn.0053ba18
add esp, 0xc
test eax, eax
je 0x537f29
cmp edi, dword [esi + 0xc]
mov dword [ebp - 0x24], edi
jge 0x536f1b
shl edi, 4
mov eax, dword [esi + 8]
add eax, edi
cmp word [eax + 4], 0
je 0x536ed0
mov ecx, dword [eax]
and dword [ecx + 0xc], 0
mov byte [ecx + 0x17], 1
movzx ecx, word [eax + 6]
dec ecx
je 0x536efd
dec ecx
je 0x536eee
dec ecx
jne 0x536f0d
fld qword [eax + 8]
push ecx
push ecx
mov ecx, dword [eax]
fstp qword [esp]
call fcn.0053bc33
jmp 0x536f0d
push dword [eax + 0xc]
mov ecx, dword [eax]
push dword [eax + 8]
call fcn.0053116c
jmp 0x536f0d
mov ecx, dword [eax]
push 1
push 0
push 0xffffffffffffffff
push dword [eax + 8]
call fcn.00530c5c
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
add edi, 0x10
cmp eax, dword [esi + 0xc]
jl 0x536eba
xor edi, edi
cmp dword [ebp - 0x1c], edi
mov dword [ebp - 0x24], edi
jle 0x536f8e
mov eax, dword [ebp - 4]
lea eax, [ebp + eax*4 - 0xc8c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
mov edx, dword [eax + 8]
cmp edx, 6
jge 0x537f30
mov ecx, dword [esi + 8]
add ecx, edi
cmp word [ecx + 4], 0
je 0x536f74
cmp edx, 3
jne 0x537f46
mov eax, dword [eax]
mov ecx, dword [ecx]
jmp 0x536f61
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x17], 0
je 0x536f5e
cmp eax, ecx
je 0x536f7c
mov dword [ecx + 0xc], eax
mov byte [ecx + 0x17], 0
jmp 0x536f7c
mov ecx, dword [ecx]
push eax
call int.00530fa1
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
add dword [ebp - 0x34], 4
add edi, 0x10
cmp eax, dword [ebp - 0x1c]
jl 0x536f32
lea eax, [ebp - 0x10]
push eax
mov ecx, esi
call 0x5382f0
cmp eax, 8
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
je 0x537fbb
test eax, eax
je 0x537fbb
mov ecx, dword [0x465108]
xor eax, eax
cmp dword [ebp - 4], eax
jne 0x537036
mov edx, dword [ebp - 8]
cmp dword [edx + 0x18], 0x38
jne 0x537036
mov edi, dword [ebp - 0x60]
cmp edi, eax
mov dword [ebp - 0x1c], 1
je 0x536ffb
cmp dword [ebp - 0x44], eax
je 0x537f5c
cmp dword [ecx + 0x94], esi
jne 0x537f5c
cmp byte [edi + 0x16], al
je 0x537f5c
test byte [edi + 0x15], 4
jne 0x537f5c
mov eax, dword [ebp - 0x54]
cmp byte [eax], 3
je 0x537f9b
mov edx, dword [ebp - 0x10]
cmp byte [edx], 0
jne 0x53703b
and dword [ebx + 4], 0
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x44]
push eax
mov dword [ebx], 0x45a5d8
mov dword [ebx + 8], 4
push esi
call fcn.00538330
add esp, 0xc
jmp 0x537e80
mov dword [ebp - 0x1c], eax
jmp 0x537007
mov eax, dword [ebp - 8]
cmp dword [eax + 0x18], 0xc
jne 0x5370fe
cmp dword [ebp - 4], 0
je 0x5370fe
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0xc90]
cmp dword [eax + 8], 3
jne 0x5370fe
mov esi, dword [eax]
mov al, byte [esi + 0x17]
test al, al
jne 0x537075
mov eax, dword [esi + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x5370fe
xor edi, edi
cmp dword [ebp - 0x44], edi
je 0x53709b
mov eax, dword [ebp - 0xc]
cmp dword [ecx + 0x94], eax
jne 0x53709b
cmp byte [esi + 0x16], 0
je 0x53709b
test byte [esi + 0x15], 4
je 0x5370fe
dec dword [ebp - 4]
push edx
call 0x586d3e
pop ecx
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [0x46ab98]
jne 0x5370cc
cmp eax, 0x40
jb 0x5370cc
push eax
push ecx
mov ecx, esi
call fcn.0053bb2e
mov dword [0x46ab98], edi
mov dword [0x46ab9c], edi
jmp 0x5370d8
push 1
push edi
push eax
push ecx
mov ecx, esi
call fcn.00530c5c
add dword [ebp - 8], 0x10
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0xc]
mov dword [ebx], esi
mov dword [ebx + 8], 3
jmp 0x537029
xor edi, edi
cmp edx, dword [0x46ab98]
jne 0x537128
cmp dword [ebp - 0x1c], edi
jne 0x537129
mov ecx, dword [ebp - 8]
add ecx, 0x18
jmp 0x53711d
cmp eax, 0x37
je 0x537126
add ecx, 0x10
mov eax, dword [ecx]
cmp eax, 0x38
jne 0x537115
jmp 0x537129
xor edi, edi
inc edi
and dword [ebx + 4], 0
test edi, edi
mov dword [ebx + 8], 4
je 0x5371d7
push dword [ebp - 0x10]
call 0x586d3e
mov esi, eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
sub eax, dword [ebp - 0x40]
pop ecx
mov ecx, dword [ebp + 0x18]
add eax, dword [ecx]
inc esi
cmp esi, eax
ja 0x53716d
push esi
push dword [ebp - 0x10]
push dword [ebp - 0x40]
call 0x58673e
add esp, 0xc
add dword [ebp - 0x40], esi
jmp 0x5371da
cmp esi, 0x1001
jae 0x53719f
cmp dword [ebp - 0x58], 0x9c40
jae 0x53719f
mov eax, esi
add eax, 3
and eax, 0xfffffffc
call 0x5872de
mov eax, esp
push esi
push dword [ebp - 0x10]
push eax
call 0x58673e
add esp, 0xc
add dword [ebp - 0x58], esi
jmp 0x5371da
cmp dword [ebp - 0x18], 0xc8
je 0x537fb1
push esi
call 0x56e866
test eax, eax
pop ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp + ecx*4 - 0x48c], eax
je 0x537fb1
push esi
push dword [ebp - 0x10]
push eax
call 0x58673e
add esp, 0xc
inc dword [ebp - 0x18]
jmp 0x5371da
mov eax, dword [ebp - 0x10]
mov dword [ebx], eax
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x31], 0
jne 0x537e80
lea ecx, [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0x44]
push ecx
push eax
jmp 0x537029
cmp eax, 0x18
jne 0x537231
cmp dword [ebx + 0xc], 0
je 0x537eeb
cmp dword [ebp - 4], 0
je 0x537eeb
dec dword [ebp - 4]
mov eax, dword [ebp - 4]
mov esi, dword [ebp + eax*4 - 0xc8c]
mov eax, dword [ebp - 8]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
jmp 0x537e86
xor edi, edi
cmp dword [ebp - 4], edi
je 0x538039
dec dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov esi, dword [ebp + ecx*4 - 0xc8c]
cmp dword [esi + 8], 6
mov dword [ebp - 0x14], esi
jge 0x538039
cmp eax, 0x19
jne 0x53727a
mov eax, dword [ebx + 0xc]
cmp eax, edi
je 0x538039
mov dword [ebp - 8], eax
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x537e80
cmp eax, 0xb
je 0x537eeb
cmp eax, 0xc
je 0x5372a3
cmp eax, 0x17
je 0x5372a3
cmp eax, 0x24
je 0x5372a3
push dword [ebp - 0x14]
call fcn.00531122
mov esi, dword [ebp - 0x14]
pop ecx
mov dword [ebp - 0x28], eax
xor edi, edi
mov eax, dword [ebx + 8]
cmp eax, 0x30
mov dword [ebp - 0x34], edi
jg 0x53736a
je 0x537341
cmp eax, 7
jl 0x5374a4
cmp eax, 8
jle 0x537397
cmp eax, 0x19
jle 0x5374a4
cmp eax, 0x1b
jle 0x53732e
cmp eax, 0x1c
je 0x537341
cmp eax, 0x2f
jne 0x5374a4
cmp dword [ebp - 0x28], 1
jne 0x53730f
push 1
push dword [ebp - 0x14]
call int.005310e0
neg eax
adc edx, 0
pop ecx
neg edx
pop ecx
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov eax, dword [ebp - 0x28]
mov dword [ebx + 8], eax
jmp 0x537e80
cmp dword [ebp - 0x28], 2
jne 0x537de0
push 1
push 0
push dword [ebp - 0x14]
call fcn.00531748
fchs
fstp qword [ebx]
add esp, 0xc
jmp 0x537304
push dword [ebp - 0x28]
push dword [ebp - 0x14]
call fcn.00531570
cdq
pop ecx
pop ecx
mov dword [ebx + 4], edx
jmp 0x53735c
push dword [ebp - 0x28]
push dword [ebp - 0x14]
call fcn.00531570
pop ecx
pop ecx
test eax, eax
jmp 0x536aab
xor eax, eax
xor ecx, ecx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x537e80
cmp eax, 0x31
je 0x537ddb
cmp eax, 0x32
je 0x537db2
cmp eax, 0x33
je 0x537ddb
cmp eax, 0x34
jle 0x5374a4
cmp eax, 0x36
jg 0x5374a4
xor ecx, ecx
cmp eax, 0x35
setge cl
push 3
pop edi
mov dword [ebp - 0x2c], ecx
mov ecx, dword [esi + 8]
cmp ecx, edi
jne 0x537495
cmp dword [ebp - 0x28], 0
je 0x537465
cmp eax, 7
je 0x5373ca
cmp eax, 0x35
je 0x5373ca
or dword [ebp - 0xc], 0xffffffff
jmp 0x5373d1
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0x28], 1
mov esi, dword [ebp - 0x14]
push 1
jne 0x5373fd
push esi
call int.005310e0
mov dword [ebx], eax
mov eax, dword [ebp - 0xc]
mov dword [ebx + 4], edx
cdq
add eax, dword [ebx]
pop ecx
adc edx, dword [ebx + 4]
pop ecx
mov ecx, dword [esi]
push edx
push eax
call fcn.0053116c
jmp 0x53741e
push 0
push esi
call fcn.00531748
fst qword [ebx]
fild dword [ebp - 0xc]
mov ecx, dword [esi]
add esp, 4
fadd st(1)
fstp qword [esp]
fstp st(0)
call fcn.0053bc33
mov esi, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0
je 0x537304
mov eax, dword [esi]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x537437
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 1
jne 0x537443
mov dword [ebx], eax
jmp 0x537de6
mov ecx, dword [ebp - 0x28]
cmp ecx, 1
jne 0x537456
mov eax, dword [ebp - 0xc]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp 0x53745d
fild dword [ebp - 0xc]
fadd qword [ebx]
fstp qword [ebx]
mov dword [ebx + 8], ecx
jmp 0x537e80
cmp ecx, edi
jne 0x537495
mov esi, dword [ebp - 0x14]
mov ecx, dword [esi]
push 1
push 0
push 0xffffffffffffffff
push 0
call fcn.00530c5c
cmp dword [ebp - 0x2c], 0
je 0x537495
mov eax, dword [esi]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x537490
mov ecx, dword [eax + 0xc]
mov cl, byte [ecx + 0x17]
cmp cl, 1
je 0x53743c
and dword [ebx + 8], 0
mov dword [ebx], 0x45a5d8
jmp 0x537e80
cmp dword [ebp - 4], edi
je 0x538039
dec dword [ebp - 4]
mov ecx, dword [ebp - 4]
lea ecx, [ebp + ecx*4 - 0xc8c]
mov edx, dword [ecx]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [edx + 8]
cmp ecx, 6
mov dword [ebp - 0x24], edx
jge 0x538039
cmp eax, 0x17
jg 0x53759e
cmp eax, 0xc
jl 0x53759e
cmp ecx, 3
jne 0x537de0
add eax, 0xfffffff4
cmp eax, 0xb
ja 0x537599
jmp dword [eax*4 + 0x408e6a]
or byte [ecx], ch
add byte [eax], al
add bl, ch
pop es
mov dword [ebx + 8], 0x24
mov eax, dword [edx]
mov dword [ebp - 0x34], eax
cmp dword [ebx + 8], 0x24
je 0x5379f3
cmp dword [ebp - 0x28], 0
je 0x5379f3
push dword [ebp - 0x24]
call fcn.00531122
mov esi, eax
test esi, esi
pop ecx
mov dword [ebp - 0x38], esi
je 0x5379f3
xor edi, edi
inc edi
cmp dword [ebp - 0x28], edi
jne 0x5375da
cmp esi, edi
jne 0x5375da
cmp dword [ebx + 8], 0x2d
jne 0x5375ef
mov eax, dword [ebx + 8]
cmp eax, 0x29
jg 0x5377cc
cmp eax, 0x25
jl 0x5377cc
xor eax, eax
cmp dword [ebp - 0x28], edi
sete al
push eax
push dword [ebp - 0x14]
call int.005310e0
mov esi, eax
xor eax, eax
cmp dword [ebp - 0x38], edi
add al, byte [eax]
add byte [eax], al
jmp 0x5376b0
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
cmp ecx, 2
mov eax, dword [ebp + 8]
mov edi, dword [eax + ecx*4]
jl 0x53758b
jmp 0x53770c
pop edi
pop esi
pop ebx
leave
ret
add byte [ebx + 0x147503f8], al
mov ecx, dword [esi]
push ebx
call fcn.0053026f
mov edi, eax
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 8], eax
jmp 0x5377ec
push 5
mov esi, 0x45f65c
push esi
push edi
mov dword [ebp - 0xc], edi
call 0x570682
add esp, 0xc
test eax, eax
jne 0x53781a
add edi, 5
push edi
mov dword [ebp - 0x10], 0x10
call fcn.005302b6
pop ecx
mov dword [ebp - 0xc], eax
jmp 0x53783c
cmp dword [ebp - 8], 0
je 0x53783c
push 5
push esi
push dword [ebp - 8]
call 0x570682
add esp, 0xc
test eax, eax
jne 0x53783c
and dword [ebp - 8], eax
mov dword [ebp - 0x10], 0x10
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.00537575
cmp dword [ebp - 0x24], 0
pop ecx
pop ecx
je 0x537dc1
dec dword [ebp + 0x10]
cmp byte [ebp - 0x20], 0
jne 0x537874
cmp dword [ebp - 0x24], 7
jne 0x53786a
or byte [ebp - 0xf], 2
jmp 0x537874
cmp dword [ebp - 0x24], 6
jne 0x537874
or byte [ebp - 0xf], 1
mov eax, dword [ebp + 0x10]
cdq
sub eax, edx
sar eax, 1
je 0x537891
shl eax, 4
add eax, 3
and eax, 0xfffffffc
call 0x5862de
mov dword [ebp - 0x18], esp
jmp 0x537895
and dword [ebp - 0x18], 0
and dword [ebp - 8], 0
xor ebx, ebx
inc ebx
cmp dword [ebp + 0x10], ebx
jle 0x5379a9
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp + 0xc]
lea esi, [eax + ebx*4]
mov eax, dword [esi]
mov ecx, dword [eax + 8]
cmp ecx, 1
je 0x537a0f
cmp ecx, 2
je 0x537a0f
cmp ecx, 3
jne 0x5378e2
mov ecx, dword [eax]
push 1
call fcn.0053026f
mov dword [ebp - 0x34], eax
mov eax, dword [esi]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x30], eax
jmp 0x5378eb
mov eax, dword [eax]
and dword [ebp - 0x30], 0
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + ebx*4 + 4]
lea eax, [ebp - 0x34]
push edi
push eax
call fcn.00537575
mov eax, dword [edi + 8]
test eax, eax
pop ecx
pop ecx
je 0x537a0f
cmp eax, 1
je 0x537973
cmp eax, 5
jle 0x537931
cmp eax, 7
jg 0x537931
push 0
push 1
push esi
call fcn.00530748
fst qword [edi]
add esp, 0xc
cmp dword [edi + 8], 6
jne 0x537996
fstp dword [edi]
jmp 0x537998
cmp byte [edi + 0xd], 0
je 0x53795c
cmp eax, 5
jne 0x53795c
mov eax, dword [esi + 8]
cmp eax, 1
je 0x53795c
cmp eax, 2
je 0x53795c
push 0
push esi
call fcn.005307ec
push eax
call fcn.0052f46b
add esp, 0xc
jmp 0x537966
push 0
push esi
call fcn.005300e0
pop ecx
pop ecx
cmp dword [edi + 8], 5
mov dword [edi], eax
mov dword [edi + 4], edx
je 0x537998
jmp 0x537992
mov eax, dword [esi + 8]
cmp eax, 1
je 0x537a0f
cmp eax, 2
je 0x537a0f
push 0
push esi
call fcn.005307ec
pop ecx
pop ecx
mov dword [edi], eax
jmp 0x537998
fstp st(0)
inc dword [ebp - 8]
add edi, 0x10
inc ebx
inc ebx
cmp ebx, dword [ebp + 0x10]
jl 0x5378a8
cmp dword [ebp - 4], 0
jne 0x537b6d
test byte [0x46b3e0], 1
mov edi, dword [0x45a25c]
jne 0x5379f9
or dword [0x46b3e0], 1
push 0x45c0b0
call edi
push 0x45f2cc
mov dword [0x46b3d0], eax
call edi
push 0x45a624
mov dword [0x46b3d4], eax
call edi
push 0x45f654
mov dword [0x46b3d8], eax
call edi
xlatb
mov dword [0x46b3dc], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp dword [eax + 8], 3
jne 0x537a16
mov ecx, dword [eax]
push 1
call fcn.0053026f
jmp 0x537a18
push 1
jmp 0x537dc2
mov eax, dword [eax]
push 0x207
push eax
lea eax, [ebp - 0x23c]
push eax
call 0x567a2c
add eax, dword [eax]
lea eax, [ebp - 0x23c]
push 0x5c
push eax
call 0x5864ce
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x537ad4
mov esi, dword [fcn.0045a260]
xor edi, edi
cmp dword [0x4664c0], edi
jle 0x537a88
mov eax, dword [edi*4 + 0x46b3d0]
test eax, eax
je 0x537a75
lea ecx, [ebp - 0x23c]
push ecx
push eax
call esi
test eax, eax
mov dword [ebp - 4], eax
jne 0x537b6d
inc edi
cmp edi, dword [0x4664c0]
jl 0x537a55
cmp dword [ebp - 4], 0
jne 0x537b6d
lea eax, [ebp - 0x23c]
push 0x45ce08
push eax
call 0x585b1e
xor edi, edi
cmp dword [0x4664c0], edi
pop ecx
pop ecx
jle 0x537b52
mov eax, dword [edi*4 + 0x46b3d0]
test eax, eax
je 0x537ac9
lea ecx, [ebp - 0x23c]
push ecx
push eax
call esi
test eax, eax
mov dword [ebp - 4], eax
jne 0x537b6d
inc edi
cmp edi, dword [0x4664c0]
jl 0x537aa9
jmp 0x537b4c
lea eax, [ebp - 0x23c]
mov byte [ebx], 0
dec ebp
clc
in al, 0
push ebx
push 0
push 0xffffffffffffffff
push 0x45f5ec
call [edi + 0x5e]
inc ebp
add al, ch
test eax, 0x330004ea
test byte [ebx + 0x30891845], 0xa1
or byte [ecx + 0x46], dl
add bh, bh
jo 0x537e2c
call dword [0x45a148]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x44], esi
xor eax, eax
lea edi, [ebp - 0x40]
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x14]
mov ecx, eax
shl ecx, 3
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], esp
sub esp, dword [ebp - 0x28]
dec eax
mov esi, dword [ebp - 0x24]
push 4
pop ebx
cmp eax, 0xffffffff
jle 0x537e85
mov ecx, eax
shl ecx, 4
enter 0xffffffffffffe1c1, 4
mov edx, dword [ebp + 0x10]
lea ecx, [ecx + edx + 8]
inc eax
mov dword [ebp - 0x20], eax
cmp byte [ecx + 4], 0
je 0x537e4d
sub esi, ebx
lea eax, [ecx - 8]
mov dword [esi], eax
add dword [ebp - 0x1c], ebx
jmp 0x537e7d
mov eax, dword [ecx]
cmp eax, 5
je 0x537e5d
cmp eax, 7
je 0x537e5d
mov eax, ebx
jmp 0x537e60
push 8
pop eax
add dword [ebp - 0x1c], eax
lea edx, [ecx + eax - 0xc]
test eax, eax
jle 0x537e7d
lea edi, [eax - 1]
shr edi, 2
inc edi
mov eax, dword [edx]
sub edx, ebx
sub esi, ebx
mov dword [esi], eax
push es
dec edi
jne 0x537e72
sub ecx, 0x10
dec dword [ebp - 0x20]
jne 0x537e3b
mov eax, dword [ebp + 0x1c]
xor edi, edi
cmp eax, edi
je 0x537ea1
inc ebp
sbb al, 0x33
invalid
test byte [ebp + 8], 1
jne 0x537e9a
cmp dword [ebp + 0x20], 8
jle 0x537ea1
add dword [ebp - 0x1c], ebx
sub esi, ebx
mov dword [esi], eax
wait
mov dword [ebp - 4], edi
add esp, dword [ebp - 0x28]
mov dword [ebp - 0x34], esp
sub esp, dword [ebp - 0x1c]
call dword [ebp + 0xc]
wait
or dword [ebp - 4], 0xffffffff
jmp 0x537ed7
mov dword [ebp - 0x3c], esp
mov esp, dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
mov ebx, dword [ebp + 8]
test bh, 1
je 0x537ef0
fstp dword [ebp - 0x44]
jmp 0x537f26
test bh, 2
je 0x537efa
fstp qword [ebp - 0x44]
jmp 0x537f26
mov esp, 0x7d392ceb
sbb al, 0x75
push cs
cmp dword [ebp + 0x1c], edi
jne 0x537f0d
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x40], edx
jmp 0x537f26
test bl, 1
jne 0x537f26
cmp dword [ebp + 0x20], 8
jg 0x537f26
or byte [edi + 0xe], bh
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp - 0x30]
mov dword [ecx], eax
mov edx, dword [ebp - 0x2c]
mov dword [ecx + 4], edx
call dword [0x45a22c]
mov ecx, dword [0x465108]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x3c]
je 0x537f54
mov byte [0xd8b0045], al
or byte [ecx + 0x46], dl
inc esi
add byte [ecx + 0x458b3041], cl
int3
test bl, 0x20
je 0x537f54
mov byte [ebp - 0x64], 0x41
push 0xa
lea ecx, [ebp - 0x63]
push ecx
push eax
call fcn.0052f66a
jmp 0x537f71
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
cmp eax, edi
je 0x537f7f
and al, dh
inc ebp
pushfd
xor dh, al
inc ebp
popfd
js 0x537fd0
mov byte [ebp - 0x64], 0x30
mov byte [ebp - 0x63], 0x78
push 0x10
lea ecx, [ebp - 0x62]
push ecx
push eax
adc byte [ebp + 0x50519e4d], cl
call fcn.0052f451
add esp, 0xc
push 1
push edi
push 0xffffffffffffffff
lea eax, [ebp - 0x64]
push eax
jmp 0x537f89
push 1
push edi
push 0xffffffffffffffff
push 0x45a734
mov ecx, dword [0x467b78]
call fcn.0052fc5c
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
call 0x5868d1
xor ch, cl
add al, 0
ret
jne 0x537fcc
mov ecx, dword [ebx]
push 1
call fcn.0053026f
mov ecx, dword [ebx]
mov edi, eax
call fcn.0053a945
add eax, edi
mov dword [ebp - 8], eax
jmp 0x537fd8
dec dword [ebx - 0x170774f5]
sub byte [ecx], 0
add byte [ebx], al
invalid
push 0
push ebx
call fcn.005300e0
pop ecx
or al, 0x81
invalid
pop ecx
mov edi, eax
cmp dword [ebp + 0x10], 1
jle 0x537fec
push 0
push dword [esi + 4]
call fcn.005300e0
pop ecx
pop ecx
add edi, eax
cmp dword [ebp + 0x10], 3
mov esi, dword [ebp + 8]
mov dword [ebp - 4], 4
jge 0x538005
and dword [ebp + 0x10], 0
jmp 0x538092
push dword [esi + 4]
mov eax, dword [ebp + 0xc]
push dword [eax + 8]
call fcn.005307ec
mov dword [ebp + 0xc], eax
movsx eax, byte [eax]
push eax
call 0x570acd
add esp, 0xc
cmp eax, 0x55
jne 0x538030
inc dword [ebp + 0xc]
and dword [ebp + 0x10], 0
jmp 0x538037
mov dword [ebp + 0x10], 1
mov eax, dword [ebp + 0xc]
movsx eax, byte [eax]
push eax
call 0x570acd
sub eax, 0x43
pop ecx
je 0x53808b
or al, 0xf
mov esi, 0x8ae85000
mov al, byte [ebx]
add byte [ebx + 0x745943e8], al
inc edx
dec eax
je 0x53807b
push 2
pop ecx
sub eax, ecx
je 0x538082
sub eax, 3
je 0x538062
sub eax, 0xa
jne 0x538092
mov dword [ebp - 4], ecx
jmp 0x538092
push 0x36
push dword [ebp + 0xc]
call 0x585e6e
test eax, eax
pop ecx
pop ecx
je 0x538092
mov dword [ebp - 4], 8
jmp 0x538092
mov dword [ebp - 4], 8
mov dword [esi + 8], 2
jmp 0x538092
mov dword [ebp - 4], 1
cmp edi, 0x400
jb 0x538108
cmp dword [ebx + 8], 3
jne 0x5380aa
mov eax, dword [ebp - 4]
add eax, edi
cmp eax, dword [ebp - 8]
ja 0x538108
mov eax, dword [ebp - 4]
dec eax
dec eax
je 0x5380f2
dec eax
dec eax
je 0x5380d6
sub eax, 4
je 0x5380ca
cmp dword [ebp + 0x10], 0
je 0x5380c5
movsx eax, byte [edi]
jmp 0x5380fb
movzx eax, byte [edi]
jmp 0x5380fb
mov eax, dword [edi]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
jmp 0x538112
cmp dword [esi + 8], 2
jne 0x5380e2
fld dword [edi]
fstp qword [esi]
jmp 0x538112
cmp dword [ebp + 0x10], 0
mov eax, dword [edi]
jne 0x5380fb
and dword [esi + 4], 0
mov dword [esi], eax
jmp 0x538112
cmp dword [ebp + 0x10], 0
je 0x538103
movsx eax, word [edi]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x538112
movzx eax, word [edi]
jmp 0x5380fb
and dword [esi + 8], 0
mov dword [esi], 0x45a5d8
pop edi
pop esi
pop ebx
leave
ret
jae 0x53812b
cmp dword [esi + 8], 3
push edi
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x10], esi
push 0
jne 0x53814d
mov ecx, dword [esi]
call fcn.0053026f
mov ecx, dword [esi]
mov edi, eax
call fcn.0053a945
add eax, edi
mov dword [ebp - 0x14], eax
jmp 0x538157
push esi
call fcn.005300e0
pop ecx
pop ecx
mov edi, eax
cmp dword [ebp + 0x10], 2
jle 0x53816b
push 0
push dword [ebx + 8]
call fcn.005300e0
pop ecx
pop ecx
add edi, eax
and dword [ebp - 0xc], 0
cmp dword [ebp + 0x10], 3
mov esi, dword [ebp + 8]
mov dword [ebp - 4], 4
mov dword [ebp - 8], 1
jle 0x5381ff
push dword [esi + 4]
push dword [ebx + 0xc]
call fcn.005307ec
mov ebx, eax
movsx eax, byte [ebx]
push eax
call 0x570acd
add esp, 0xc
cmp eax, 0x55
jne 0x5381ac
mov dword [ebp - 0xc], 1
inc ebx
movsx eax, byte [ebx]
push eax
call 0x570acd
sub eax, 0x43
pop ecx
je 0x5381f8
dec eax
je 0x5381eb
push 2
pop ecx
sub eax, ecx
je 0x5381f2
sub eax, 3
je 0x5381d4
sub eax, 0xa
jne 0x5381ff
mov dword [ebp - 4], ecx
jmp 0x5381ff
push 0x36
push ebx
call 0x585e6e
test eax, eax
pop ecx
pop ecx
je 0x5381ff
mov dword [ebp - 4], 8
jmp 0x5381ff
mov dword [ebp - 4], 8
and dword [ebp - 8], 0
jmp 0x5381ff
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 4]
lea eax, [ecx + edi]
mov dword [esi], eax
xor eax, eax
cmp edi, 0x400
mov dword [esi + 4], eax
jb 0x5382f3
mov ebx, dword [ebp - 0x10]
cmp dword [ebx + 8], 3
jne 0x538238
mov edx, eax
cmp edx, eax
jg 0x5382f3
jl 0x538238
mov eax, dword [esi]
cmp eax, dword [ebp - 0x14]
ja 0x5382f3
mov eax, ecx
dec eax
dec eax
je 0x5382d3
dec eax
dec eax
je 0x5382ae
sub eax, 4
je 0x53825c
push 0
push dword [ebp + 0xc]
call fcn.005300e0
mov byte [edi], al
jmp 0x5382e0
xor edx, edx
cmp dword [ebp - 8], edx
je 0x53829c
cmp dword [ebp - 0xc], edx
je 0x53828a
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 8]
cmp eax, 1
je 0x53828a
cmp eax, 2
je 0x53828a
push edx
push ecx
call fcn.005307ec
push eax
call fcn.0052f46b
add esp, 0xc
jmp 0x538295
push edx
push dword [ebp + 0xc]
call fcn.005300e0
pop ecx
pop ecx
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x5382e2
push edx
push 1
push dword [ebp + 0xc]
call fcn.00530748
fstp qword [edi]
add esp, 0xc
jmp 0x5382e2
xor eax, eax
cmp dword [ebp - 8], eax
push eax
je 0x5382c2
push dword [ebp + 0xc]
call fcn.005300e0
mov dword [edi], eax
jmp 0x5382e0
push 1
push dword [ebp + 0xc]
call fcn.00530748
fstp dword [edi]
add esp, 0xc
jmp 0x5382e2
push 0
push dword [ebp + 0xc]
call fcn.005300e0
mov word [edi], ax
pop ecx
pop ecx
cmp dword [ebx + 8], 3
jne 0x5382fd
mov ecx, dword [ebx]
push 0
call fcn.0053a960
jmp 0x5382fd
and dword [esi + 8], 0
mov dword [esi], 0x45a5d8
pop edi
pop esi
pop ebx
leave
ret